Bläddra i källkod

增项——技术服务类:完成90%,差级联删除增项信息。

ljm 6 år sedan
förälder
incheckning
eb72c94333

+ 26 - 0
src/dashoo.cn/backend/api/business/oilsupplier/suppliercertappend/oilsuppliercertappend.go

@@ -0,0 +1,26 @@
+package suppliercertappend
+
+import (
+	"time"
+)
+
+type OilSupplierCertAppend struct {
+	Id             int       `xorm:"not null pk autoincr INT(10)"`
+	SupplierId     int       `xorm:"not null comment('供方基本信息表主键') INT(10)"`
+	SupplierCertId int       `xorm:"not null comment('供方准入证书信息表主键') INT(10)"`
+	ApplyDate      time.Time `xorm:"comment('申请日期') DATETIME"`
+	RecUnitId      string    `xorm:"comment('推荐单位编码') VARCHAR(10)"`
+	RecUnitName    string    `xorm:"comment('推荐单位名称') VARCHAR(50)"`
+	WorkRange      string    `xorm:"comment('申请准入的范围') VARCHAR(50)"`
+	DenyReason     string    `xorm:"comment('退回原因') VARCHAR(50)"`
+	AuditDate      time.Time `xorm:"comment('审核日期') DATETIME"`
+	Status         string    `xorm:"comment('状态标识') VARCHAR(50)"`
+	Remark         string    `xorm:"comment('备注') VARCHAR(500)"`
+	IsDelete       int       `xorm:"default 0 comment('删除状态,0正常,1已删除') INT(10)"`
+	CreateOn       time.Time `xorm:"DATETIME"`
+	CreateUserId   int       `xorm:"INT(10)"`
+	CreateBy       string    `xorm:"VARCHAR(50)"`
+	ModifiedOn     time.Time `xorm:"DATETIME"`
+	ModifiedUserId int       `xorm:"INT(10)"`
+	ModifiedBy     string    `xorm:"VARCHAR(50)"`
+}

+ 16 - 0
src/dashoo.cn/backend/api/business/oilsupplier/suppliercertappend/oilsuppliercertappendService.go

@@ -0,0 +1,16 @@
+package suppliercertappend
+
+import (
+	. "dashoo.cn/backend/api/mydb"
+	"github.com/go-xorm/xorm"
+)
+
+type OilSupplierCertAppendService struct {
+	MyServiceBase
+}
+
+func GetOilSupplierCertAppendService(xormEngine *xorm.Engine) *OilSupplierCertAppendService {
+	s := new(OilSupplierCertAppendService)
+	s.DBE = xormEngine
+	return s
+}

+ 23 - 0
src/dashoo.cn/backend/api/business/oilsupplier/suppliercertappendsub/oilsuppliercertappendsub.go

@@ -0,0 +1,23 @@
+package suppliercertappendsub
+
+import (
+	"time"
+)
+
+type OilSupplierCertAppendSub struct {
+	Id                   int       `xorm:"not null pk autoincr INT(10)"`
+	SupplierId           int       `xorm:"not null comment('供方基本信息表主键') INT(10)"`
+	SupplierCertId       int       `xorm:"not null comment('供方准入证书信息表主键') INT(10)"`
+	SupplierCertAppendId int       `xorm:"not null comment('增项信息表ID') INT(10)"`
+	SubclassId           int       `xorm:"not null comment('分类表主键(物资类或基建类或技术服务类)') INT(10)"`
+	Code                 string    `xorm:"not null default '' comment('分类编码') VARCHAR(8)"`
+	Name                 string    `xorm:"not null default '' comment('分类名称') VARCHAR(50)"`
+	Remark               string    `xorm:"comment('备注') VARCHAR(500)"`
+	IsDelete             int       `xorm:"default 0 comment('删除状态,0正常,1已删除') INT(10)"`
+	CreateOn             time.Time `xorm:"DATETIME"`
+	CreateUserId         int       `xorm:"INT(10)"`
+	CreateBy             string    `xorm:"VARCHAR(50)"`
+	ModifiedOn           time.Time `xorm:"DATETIME"`
+	ModifiedUserId       int       `xorm:"INT(10)"`
+	ModifiedBy           string    `xorm:"VARCHAR(50)"`
+}

+ 16 - 0
src/dashoo.cn/backend/api/business/oilsupplier/suppliercertappendsub/oilsuppliercertappendsubService.go

@@ -0,0 +1,16 @@
+package suppliercertappendsub
+
+import (
+	. "dashoo.cn/backend/api/mydb"
+	"github.com/go-xorm/xorm"
+)
+
+type OilSupplierCertAppendSubService struct {
+	MyServiceBase
+}
+
+func GetOilSupplierCertAppendSubService(xormEngine *xorm.Engine) *OilSupplierCertAppendSubService {
+	s := new(OilSupplierCertAppendSubService)
+	s.DBE = xormEngine
+	return s
+}

+ 4 - 4
src/dashoo.cn/backend/api/controllers/base.go

@@ -231,10 +231,11 @@ var (
 	OilSupplierName                          string = "OilSupplier"                 // 供方基本信息表
 	OilSupplierCertName                      string = "OilSupplierCert"             // 供方准入证书信息表
 	OilSupplierCertSubName                   string = "OilSupplierCertSub"          // 供方对应准入子分类表
-	OilSupplierOpinionName                   string = "OilSupplierOpinion"          //供方审核意见表
-	OilSupplierFileName                      string = "OilSupplierFile"             //供方准入文件表
+	OilSupplierCertAppendName                string = "OilSupplierCertAppend"       // 供方增项信息表
+	OilSupplierCertAppendSubName             string = "OilSupplierCertAppendSub"    // 供方增项信息分类表
+	OilSupplierFileName                      string = "OilSupplierFile"             // 供方准入文件表
 	OilGoodsAptitudeClassName                string = "OilGoodsAptitudeClass"       // 物资类资质分类层级表
-	OilTechnologyServiceClassName            string = "OilTechnologyServiceClass"   // 物资类资质分类层级表
+	OilTechnologyServiceClassName            string = "OilTechnologyServiceClass"   // 技术服务类资质分类层级表
 	OilEnterpriseMajorEquipmentName          string = "OilEnterpriseMajorEquipment" //企业主要装备情况
 	OilThreeYearsPerformanceName             string = "OilThreeYearsPerformance"    //近三年主要工程业绩
 	OilPatentStatisticalName                 string = "OilPatentStatistical"        //拥有专利、专有技术及工法
@@ -242,7 +243,6 @@ var (
 	OilTechsrvDetailViewName                 string = "oil_techsrv_detail_view"     //技术服务类视图
 	OilGoodsAptDetailViewName                string = "oil_goodsapt_detail_view"    //物資类视图
 	OilClassOrgSettingName                   string = "OilClassOrgSetting"          //分类部门审批配置表
-	OilAnnualAuditName              string = "OilAnnualAudit"               // 年审表
 )
 
 //分页信息及数据

+ 246 - 0
src/dashoo.cn/backend/api/controllers/oilsupplier/suppliercertappend.go

@@ -0,0 +1,246 @@
+package oilsupplier
+
+import (
+	"encoding/json"
+	"strings"
+	"time"
+
+	"dashoo.cn/backend/api/business/oilsupplier/suppliercertappend"
+	. "dashoo.cn/backend/api/controllers"
+	"dashoo.cn/utils"
+)
+
+type OilSupplierCertAppendController struct {
+	BaseController
+}
+
+// @Title 获取列表
+// @Description 获取列表
+// @Success 200 {object} []suppliercertappend.OilSupplierCertAppend
+// @router /list [get]
+func (this *OilSupplierCertAppendController) GetList() {
+
+	//获取分页信息
+	page := this.GetPageInfoForm()
+	where := " 1=1 "
+	orderby := "Id"
+	asc := false
+	Order := this.GetString("Order")
+	Prop := this.GetString("Prop")
+	if Order != "" && Prop != "" {
+		orderby = Prop
+		if Order == "asc" {
+			asc = true
+		}
+	}
+
+	ApplyDate := this.GetString("ApplyDate")
+	RecUnitId := this.GetString("RecUnitId")
+	RecUnitName := this.GetString("RecUnitName")
+	WorkRange := this.GetString("WorkRange")
+	DenyReason := this.GetString("DenyReason")
+	AuditDate := this.GetString("AuditDate")
+	Status := this.GetString("Status")
+	Remark := this.GetString("Remark")
+	CreateOn := this.GetString("CreateOn")
+
+	if ApplyDate != "" {
+		where = where + " and ApplyDate like '%" + ApplyDate + "%'"
+	}
+
+	if RecUnitId != "" {
+		where = where + " and RecUnitId like '%" + RecUnitId + "%'"
+	}
+
+	if RecUnitName != "" {
+		where = where + " and RecUnitName like '%" + RecUnitName + "%'"
+	}
+
+	if WorkRange != "" {
+		where = where + " and WorkRange like '%" + WorkRange + "%'"
+	}
+
+	if DenyReason != "" {
+		where = where + " and DenyReason like '%" + DenyReason + "%'"
+	}
+
+	if AuditDate != "" {
+		where = where + " and AuditDate like '%" + AuditDate + "%'"
+	}
+
+	if Status != "" {
+		where = where + " and Status like '%" + Status + "%'"
+	}
+
+	if Remark != "" {
+		where = where + " and Remark like '%" + Remark + "%'"
+	}
+
+	if CreateOn != "" {
+		dates := strings.Split(CreateOn, ",")
+		if len(dates) == 2 {
+			minDate := dates[0]
+			maxDate := dates[1]
+			where = where + " and CreateOn>='" + minDate + "' and CreateOn<='" + maxDate + "'"
+		}
+	}
+
+	svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
+	var list []suppliercertappend.OilSupplierCertAppend
+	total := svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &list, where)
+
+	var datainfo DataInfo
+	datainfo.Items = list
+	datainfo.CurrentItemCount = total
+	datainfo.PageIndex = page.CurrentPage
+	datainfo.ItemsPerPage = page.Size
+	this.Data["json"] = &datainfo
+	this.ServeJSON()
+}
+
+// @Title 通过Id获取信息
+// @Description get user by token
+// @Success 200 {object} []suppliercertappend.OilSupplierCertAppend
+// @router /getEntityById/:id [get]
+func (this *OilSupplierCertAppendController) GetEntityById() {
+	Id := this.Ctx.Input.Param(":id")
+
+	var model suppliercertappend.OilSupplierCertAppend
+
+	svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
+	svc.GetEntityByIdBytbl(OilSupplierCertAppendName, Id, &model)
+
+	this.Data["json"] = &model
+	this.ServeJSON()
+}
+
+// @Title 添加
+// @Description 添加增项信息
+// @Success	200	{object} controllers.Request
+// @router /addappend [post]
+func (this *OilSupplierCertAppendController) AddAppend() {
+	var model suppliercertappend.OilSupplierCertAppend
+	var jsonblob = this.Ctx.Input.RequestBody
+
+	json.Unmarshal(jsonblob, &model)
+
+	model.ApplyDate = time.Now() //申请日期
+	model.CreateOn = time.Now()
+	model.CreateBy = this.User.Realname
+	model.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
+
+	svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
+	_, err := svc.InsertEntityBytbl(OilSupplierCertAppendName, &model)
+
+	var errinfo ErrorDataInfo
+	if err == nil {
+		errinfo.Message = "操作成功!"
+		errinfo.Code = 0
+		errinfo.Item = model.Id
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+	} else {
+		errinfo.Message = "操作失败!" + utils.AlertProcess(err.Error())
+		errinfo.Code = -1
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+	}
+}
+
+// @Title 修改实体
+// @Description 修改实体
+// @Param
+// @Success	200	{object} controllers.Request
+// @router /update/:id [post]
+func (this *OilSupplierCertAppendController) UpdateEntity() {
+	var errinfo ErrorInfo
+	var model suppliercertappend.OilSupplierCertAppend
+
+	id := this.Ctx.Input.Param(":id")
+	if id == "" {
+		errinfo.Message = "操作失败!请求信息不完整"
+		errinfo.Code = -2
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+		return
+	}
+
+	svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
+
+	var jsonBlob = this.Ctx.Input.RequestBody
+	json.Unmarshal(jsonBlob, &model)
+
+	model.ApplyDate = time.Now() //更新申请日期
+	model.ModifiedOn = time.Now()
+	model.ModifiedBy = this.User.Realname
+	model.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int()
+
+	cols := []string{
+
+		"Id",
+
+		"ApplyDate",
+
+		"RecUnitId",
+
+		"RecUnitName",
+
+		"WorkRange",
+
+		"Remark",
+
+		"ModifiedOn",
+
+		"ModifiedUserId",
+
+		"ModifiedBy",
+	}
+	err := svc.UpdateEntityBytbl(OilSupplierCertAppendName, id, &model, cols)
+	if err == nil {
+		errinfo.Message = "修改成功!"
+		errinfo.Code = 0
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+	} else {
+		errinfo.Message = "修改失败!" + utils.AlertProcess(err.Error())
+		errinfo.Code = -1
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+	}
+}
+
+// @Title 删除
+// @Description 删除
+// @Success 200 {object} ErrorInfo
+// @Failure 403 :id 为空
+// @router /delete/:Id [delete]
+func (this *OilSupplierCertAppendController) DeleteEntity() {
+	Id := this.Ctx.Input.Param(":Id")
+	var errinfo ErrorInfo
+	if Id == "" {
+		errinfo.Message = "操作失败!请求信息不完整"
+		errinfo.Code = -2
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+		return
+	}
+
+	var model suppliercertappend.OilSupplierCertAppend
+	var entityempty suppliercertappend.OilSupplierCertAppend
+
+	svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
+
+	opdesc := "删除-" + Id
+	err := svc.DeleteOperationAndWriteLogBytbl(OilSupplierCertAppendName, BaseOperationLogName, Id, &model, &entityempty, utils.ToStr(this.User.Id), this.User.Username, opdesc, this.User.AccCode, "增项信息")
+	if err == nil {
+		errinfo.Message = "删除成功"
+		errinfo.Code = 0
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+	} else {
+		errinfo.Message = "删除失败!" + utils.AlertProcess(err.Error())
+		errinfo.Code = -1
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+	}
+}

+ 176 - 0
src/dashoo.cn/backend/api/controllers/oilsupplier/suppliercertappendsub.go

@@ -0,0 +1,176 @@
+package oilsupplier
+
+import (
+	"encoding/json"
+	"time"
+
+	"dashoo.cn/backend/api/business/oilsupplier/suppliercertappendsub"
+	. "dashoo.cn/backend/api/controllers"
+	"dashoo.cn/utils"
+)
+
+type OilSupplierCertAppendSubController struct {
+	BaseController
+}
+
+// @Title 获取列表
+// @Description 获取列表
+// @Success 200 {object} []suppliercertappendsub.OilSupplierCertAppendSub
+// @router /getList [get]
+func (this *OilSupplierCertAppendSubController) GetList() {
+
+	//获取分页信息
+	page := this.GetPageInfoForm()
+	where := " 1=1 "
+	orderby := "Id"
+	asc := false
+	Order := this.GetString("Order")
+	Prop := this.GetString("Prop")
+	if Order != "" && Prop != "" {
+		orderby = Prop
+		if Order == "asc" {
+			asc = true
+		}
+	}
+
+	SupplierCertAppendId := this.GetString("SupplierCertAppendId")
+
+	if SupplierCertAppendId != "" {
+		where = where + " and SupplierCertAppendId = " + SupplierCertAppendId
+	}
+
+	svc := suppliercertappendsub.GetOilSupplierCertAppendSubService(utils.DBE)
+	var list []suppliercertappendsub.OilSupplierCertAppendSub
+	total := svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &list, where)
+
+	var datainfo DataInfo
+	datainfo.Items = list
+	datainfo.CurrentItemCount = total
+	datainfo.PageIndex = page.CurrentPage
+	datainfo.ItemsPerPage = page.Size
+	this.Data["json"] = &datainfo
+	this.ServeJSON()
+}
+
+// @Title 添加
+// @Description 添加增项分类信息
+// @Success	200	{object} controllers.Request
+// @router /addappendsub [post]
+func (this *OilSupplierCertAppendSubController) AddAppendSub() {
+	var model suppliercertappendsub.OilSupplierCertAppendSub
+	var jsonblob = this.Ctx.Input.RequestBody
+	var errinfo ErrorDataInfo
+
+	json.Unmarshal(jsonblob, &model)
+
+	model.CreateOn = time.Now()
+	model.CreateBy = this.User.Realname
+	model.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
+
+	svc := suppliercertappendsub.GetOilSupplierCertAppendSubService(utils.DBE)
+	_, err := svc.InsertEntityBytbl(OilSupplierCertAppendSubName, &model)
+	if err == nil {
+		errinfo.Message = "操作成功!"
+		errinfo.Code = 0
+		errinfo.Item = model.Id
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+	} else {
+		errinfo.Message = "操作失败!" + utils.AlertProcess(err.Error())
+		errinfo.Code = -1
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+	}
+}
+
+// @Title 修改实体
+// @Description 修改实体
+// @Param
+// @Success	200	{object} controllers.Request
+// @router /update/:id [post]
+func (this *OilSupplierCertAppendSubController) UpdateEntity() {
+
+	var errinfo ErrorInfo
+	var model suppliercertappendsub.OilSupplierCertAppendSub
+
+	id := this.Ctx.Input.Param(":id")
+
+	if id == "" {
+		errinfo.Message = "操作失败!请求信息不完整"
+		errinfo.Code = -2
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+		return
+	}
+
+	svc := suppliercertappendsub.GetOilSupplierCertAppendSubService(utils.DBE)
+
+	var jsonBlob = this.Ctx.Input.RequestBody
+	json.Unmarshal(jsonBlob, &model)
+
+	model.ModifiedOn = time.Now()
+	model.ModifiedBy = this.User.Realname
+	model.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int()
+
+	cols := []string{
+
+		"Code",
+
+		"Name",
+
+		"Remark",
+
+		"ModifiedOn",
+
+		"ModifiedUserId",
+
+		"ModifiedBy",
+	}
+	err := svc.UpdateEntityBytbl(OilSupplierCertAppendSubName, id, &model, cols)
+	if err == nil {
+		errinfo.Message = "修改成功!"
+		errinfo.Code = 0
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+	} else {
+		errinfo.Message = "修改失败!" + utils.AlertProcess(err.Error())
+		errinfo.Code = -1
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+	}
+}
+
+// @Title 删除
+// @Description 删除一条信息
+// @Success 200 {object} ErrorInfo
+// @Failure 403 :id 为空
+// @router /delete/:Id [delete]
+func (this *OilSupplierCertAppendSubController) DeleteEntity() {
+	Id := this.Ctx.Input.Param(":Id")
+	var errinfo ErrorInfo
+	if Id == "" {
+		errinfo.Message = "操作失败!请求信息不完整"
+		errinfo.Code = -2
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+		return
+	}
+	var model suppliercertappendsub.OilSupplierCertAppendSub
+	var entityempty suppliercertappendsub.OilSupplierCertAppendSub
+
+	svc := suppliercertappendsub.GetOilSupplierCertAppendSubService(utils.DBE)
+
+	opdesc := "删除-" + Id
+	err := svc.DeleteOperationAndWriteLogBytbl(OilSupplierCertAppendSubName, BaseOperationLogName, Id, &model, &entityempty, utils.ToStr(this.User.Id), this.User.Username, opdesc, this.User.AccCode, "增项分类")
+	if err == nil {
+		errinfo.Message = "删除成功"
+		errinfo.Code = 0
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+	} else {
+		errinfo.Message = "删除失败!" + utils.AlertProcess(err.Error())
+		errinfo.Code = -1
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+	}
+}

+ 1 - 0
src/dashoo.cn/backend/api/controllers/oilsupplier/technologyservice.go

@@ -354,6 +354,7 @@ func (this *OilTechnologyServiceController) BusinessList() {
 	svc := technologyservice.GetOilTechnologyServiceService(utils.DBE)
 	where := " 1 = 1 "
 	var list []technologyservice.TechnologyBusiness
+	//获取技术服务类资质分类层级信息
 	svc.GetEntitysByWhere(OilTechnologyServiceClassName, where, &list)
 	var datainfo DataInfo
 	datainfo.Items = list

+ 10 - 0
src/dashoo.cn/backend/api/routers/router.go

@@ -249,6 +249,16 @@ func init() {
 				&oilsupplier.OilSupplierCertSubController{},
 			),
 		),
+		beego.NSNamespace("/suppliercertappend",
+			beego.NSInclude(
+				&oilsupplier.OilSupplierCertAppendController{},
+			),
+		),
+		beego.NSNamespace("/suppliercertappendsub",
+			beego.NSInclude(
+				&oilsupplier.OilSupplierCertAppendSubController{},
+			),
+		),
 		beego.NSNamespace("/supplierfile",
 			beego.NSInclude(
 				&oilsupplier.SupplierfileController{},

+ 2 - 8
src/dashoo.cn/frontend_web/src/api/oilsupplier/supplierappend.js

@@ -6,15 +6,9 @@ export default {
       params: params
     });
   },
-  getDictList(myAxios) {
+  getEntityById(id, myAxios) {
     return myAxios({
-      url: '/suppliercertappend/dictlist/',
-      method: 'GET'
-    });
-  },
-  getEntity(entityId, myAxios) {
-    return myAxios({
-      url: '/suppliercertappend/get/'+entityId,
+      url: '/suppliercertappend/getEntityById/'+id,
       method: 'GET',
     })
   },

+ 2 - 8
src/dashoo.cn/frontend_web/src/api/oilsupplier/supplierappendsub.js

@@ -1,17 +1,11 @@
 export default {
-  getList(CreateOn, params, myAxios) {
+  getList(params, myAxios) {
     return myAxios({
-      url: '/suppliercertappendsub/list?CreateOn='+ CreateOn,
+      url: '/suppliercertappendsub/getList',
       method: 'GET',
       params: params
     });
   },
-  getDictList(myAxios) {
-    return myAxios({
-      url: '/suppliercertappendsub/dictlist/',
-      method: 'GET'
-    });
-  },
   getEntity(entityId, myAxios) {
     return myAxios({
       url: '/suppliercertappendsub/get/'+entityId,

+ 126 - 266
src/dashoo.cn/frontend_web/src/pages/oilsupplier/supplierappend/index.vue

@@ -1,15 +1,13 @@
-
-
 <template>
   <div>
     <el-breadcrumb class="heading">
       <el-breadcrumb-item :to="{ path: '/' }">平台首页</el-breadcrumb-item>
-      <el-breadcrumb-item :to="{ path: '/oilsupplier/supplierappend' }">增项信息表</el-breadcrumb-item>
+      <el-breadcrumb-item :to="{ path: '/oilsupplier/supplierappend' }">增项信息表</el-breadcrumb-item>
     </el-breadcrumb>
     <el-card class="box-card" style="height: calc(100vh - 115px);">
       <div slot="header">
         <span>
-          <i class="icon icon-table2"></i> 增项信息表
+          <i class="icon icon-table2"></i> 增项信息
         </span>
         <span style="float: right;">
           <router-link :to="'/oilsupplier/supplierappend/subdata/dataopera'">
@@ -21,7 +19,6 @@
             <el-date-picker size="mini" style="width: 220px" v-model="CreateOn" type="daterange" range-separator="至"
                             start-placeholder="生成日期" end-placeholder="结束日期"></el-date-picker>
           </el-form-item>
-
           <el-form-item>
             <el-dropdown split-button type="primary" size="mini" @click="handleSearch" @command="searchCommand">
               查询
@@ -36,36 +33,27 @@
       <el-table :data="entityList" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
         <el-table-column label="操作" min-width="100" align="center" fixed>
           <template slot-scope="scope">
-            <router-link :to="'/oilsupplier/supplierappend/' + scope.row.Id + '/operation'">
-              <el-button type="text" title="编辑" size="small" icon="el-icon-edit"></el-button>
-            </router-link>
-
-            <el-popover placement="top" title="提示" v-model="scope.row.deleteConfirmFlag">
-              <el-alert
-                title=""
-                description="确认要删除吗?"
-                type="warning"
-                :closable="false">
-              </el-alert>
-              <br/>
-              <div style="text-align: right; margin: 0">
-                <el-button type="primary" size="mini" @click="deleteEntity(scope.row)">删除</el-button>
-              </div>
-              <el-button slot="reference" type="text" title="删除" style="margin-left:3px" size="small" @click="scope.row.deleteConfirmFlag = true">
-                <i class="el-icon-delete"></i>
-              </el-button>
-            </el-popover>
+            <el-button type="text" title="编辑" size="medium" icon="el-icon-edit" @click="editData(scope.row)"></el-button>
+            <!-- <el-button type="text" title="删除" size="medium" icon="el-icon-delete" @click="deleteData(scope.row.Id)"></el-button> -->
           </template>
         </el-table-column>
-
-        <el-table-column v-for="column in tableColumns" :key="column.Id"
-                         v-if="column.prop != 'CreateOn'" :prop="column.prop" sortable min-width="100" :label="column.label" align="center" show-overflow-tooltip></el-table-column>
-
-        <!--<el-table-column prop="CreateOn" sortable min-width="150" label="生成时间" align="center" show-overflow-tooltip>
+        <el-table-column prop="ApplyDate" label="申请日期" sortable min-width="130" align="center" show-overflow-tooltip>
+          <template slot-scope="scope">
+            {{ jstimehandle(scope.row.ApplyDate) }}
+          </template>
+        </el-table-column>
+        <el-table-column prop="RecUnitName" label="推荐单位名称" sortable min-width="130" align="center" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="RecUnitId" label="推荐单位编码" sortable min-width="130" align="center" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="WorkRange" label="申请准入的范围" sortable min-width="130" align="center" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="DenyReason" label="退回原因" sortable min-width="130" align="center" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="AuditDate" label="审核日期" sortable min-width="130" align="center" show-overflow-tooltip>
           <template slot-scope="scope">
-            {{ jstimehandle(scope.row.CreateOn+'') }}
+            {{ jstimehandle(scope.row.AuditDate) }}
           </template>
-        </el-table-column>-->
+        </el-table-column>
+        <el-table-column prop="Status" label="状态标识" sortable min-width="130" align="center" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="Remark" label="备注" sortable min-width="130" align="center" show-overflow-tooltip></el-table-column>
+
       </el-table>
       <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
                      :page-sizes="[10, 15, 20, 25]" :page-size="size" layout="total, sizes, prev, pager, next, jumper" :total="currentItemCount">
@@ -76,28 +64,10 @@
       <el-form ref="advancedsearchForm" label-width="110px">
         <el-row>
 
-          <el-col :span="12">
-            <el-form-item label="生成时间">
+          <el-col :span="24">
+            <el-form-item label="时间范围">
               <el-date-picker size="mini" v-model="CreateOn" type="daterange" style="width:100%" range-separator="至"
-                              start-placeholder="生成日期" end-placeholder="结束日期"></el-date-picker>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="">
-              <el-input size="mini" v-model="searchForm.Id" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="供方表ID">
-              <el-input size="mini" v-model="searchForm.SupplierId" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="供方证书表ID">
-              <el-input size="mini" v-model="searchForm.SupplierCertId" style="width:100%" placeholder="请输入"></el-input>
+                              start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
             </el-form-item>
           </el-col>
 
@@ -108,14 +78,14 @@
           </el-col>
 
           <el-col :span="12">
-            <el-form-item label="推荐单位编码">
-              <el-input size="mini" v-model="searchForm.RecUnitId" style="width:100%" placeholder="请输入"></el-input>
+            <el-form-item label="推荐单位名称">
+              <el-input size="mini" v-model="searchForm.RecUnitName" style="width:100%" placeholder="请输入"></el-input>
             </el-form-item>
           </el-col>
 
           <el-col :span="12">
-            <el-form-item label="推荐单位名称">
-              <el-input size="mini" v-model="searchForm.RecUnitName" style="width:100%" placeholder="请输入"></el-input>
+            <el-form-item label="推荐单位编码">
+              <el-input size="mini" v-model="searchForm.RecUnitId" style="width:100%" placeholder="请输入"></el-input>
             </el-form-item>
           </el-col>
 
@@ -149,48 +119,6 @@
             </el-form-item>
           </el-col>
 
-          <el-col :span="12">
-            <el-form-item label="删除状态,0正常,1已删除">
-              <el-input size="mini" v-model="searchForm.IsDelete" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="">
-              <el-input size="mini" v-model="searchForm.CreateOn" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="">
-              <el-input size="mini" v-model="searchForm.CreateUserId" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="">
-              <el-input size="mini" v-model="searchForm.CreateBy" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="">
-              <el-input size="mini" v-model="searchForm.ModifiedOn" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="">
-              <el-input size="mini" v-model="searchForm.ModifiedUserId" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="">
-              <el-input size="mini" v-model="searchForm.ModifiedBy" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
         </el-row>
       </el-form>
       <span slot="footer" class="dialog-footer">
@@ -214,8 +142,15 @@
     name: 'oilsuppliercertappend',
 
     data() {
+      var CheckSelectedOption = (rule, value, callback) => {
+        if (this.dialogSelectedOptList && this.dialogSelectedOptList.length < 1) {
+          callback(new Error('请选择增项'))
+        } else {
+          callback()
+        }
+      }
       return {
-        dialogVisible: false,
+        dialogVisible: false,//高级查询
         //列表数据
         entityList: [],
         //分页参数
@@ -227,7 +162,7 @@
           Order: '',
           Prop: ''
         },
-        //查询时间
+        //查询起始时间(一月前开始)
         CreateOn: [new Date(new Date().getTime() - 30 * 24 * 60 * 60 * 1000), new Date()],
         //查询项
         searchFormReset: {},
@@ -250,148 +185,46 @@
           ModifiedOn: '',
           ModifiedUserId: '',
           ModifiedBy: '',
-
         },
-        tableColumns: [
-
-          /*{
-            prop: "Id",
-            label: '',
-            width: 100,
-            sort: true
-          },*/
-
-          /*{
-            prop: "SupplierId",
-            label: '供方表ID',
-            width: 100,
-            sort: true
-          },
-
-          {
-            prop: "SupplierCertId",
-            label: '供方证书表ID',
-            width: 100,
-            sort: true
-          },*/
-
-          {
-            prop: "ApplyDate",
-            label: '申请日期',
-            width: 200,
-            sort: true
-          },
-
-          /*{
-            prop: "RecUnitId",
-            label: '推荐单位编码',
-            width: 100,
-            sort: true
-          },*/
-
-          {
-            prop: "RecUnitName",
-            label: '推荐单位名称',
-            width: 200,
-            sort: true
-          },
-
-          {
-            prop: "WorkRange",
-            label: '申请准入的范围',
-            width: 200,
-            sort: true
-          },
-
-          {
-            prop: "DenyReason",
-            label: '退回原因',
-            width: 200,
-            sort: true
-          },
-
-          {
-            prop: "AuditDate",
-            label: '审核日期',
-            width: 200,
-            sort: true
-          },
-
-          {
-            prop: "Status",
-            label: '状态标识',
-            width: 120,
-            sort: true
-          },
-
-          {
-            prop: "Remark",
-            label: '备注',
-            width: 200,
-            sort: true
-          },
-
-          /*{
-            prop: "IsDelete",
-            label: '删除状态,0正常,1已删除',
-            width: 100,
-            sort: true
-          },
-
-          {
-            prop: "CreateOn",
-            label: '',
-            width: 100,
-            sort: true
-          },
-
-          {
-            prop: "CreateUserId",
-            label: '',
-            width: 100,
-            sort: true
-          },
-
-          {
-            prop: "CreateBy",
-            label: '',
-            width: 100,
-            sort: true
-          },
-
-          {
-            prop: "ModifiedOn",
-            label: '',
-            width: 100,
-            sort: true
-          },
-
-          {
-            prop: "ModifiedUserId",
-            label: '',
-            width: 100,
-            sort: true
-          },
-
-          {
-            prop: "ModifiedBy",
-            label: '',
-            width: 100,
-            sort: true
-          },*/
-
-        ]
+        //修改
+        optionsList: [], //技术服务类层级选择列表
+        orgtreeprops: {
+          value: 'id',
+          label: 'Name',
+          children: 'children'
+        },
+        dialogSelectedOptList: [],
+        dialogFormData: {
+          Id: '',
+          SupplierId: '',
+          SupplierCertId: '',
+          ApplyDate: '',
+          RecUnitId: '',
+          RecUnitName: '',
+          WorkRange: '',
+          DenyReason: '',
+          AuditDate: '',
+          Status: '',
+          Remark: '',
+        },
+        //表单规则
+        rules: {
+          checkSelectedOptList2: [{
+            required: true,
+            validator: CheckSelectedOption,
+            trigger: 'blur'
+          }],
+        },
       }
     },
     created() {
       //查询条件初始值备份
-      Object.assign(this.searchFormReset, this.searchForm);
+      Object.assign(this.searchFormReset, this.searchForm)
       //查询列表
-      this.initDatas();
-      //this.getDictOptions()
+      this.initData()
     },
     methods: {
-      initDatas() {
+      initData() {
         //分页及列表条件
         let params = {
           _currentPage: this.currentPage,
@@ -419,16 +252,60 @@
         })
       },
 
-      getDictOptions() {
-        api.getDictList(this.$axios).then(res => {
-          //this.dictOptions.customerList = res.data.items['customerList']
-          //this.dictOptions.projectList = res.data.items['projectList']
+      //获取技术服务类层级列表
+      getTechTreeList() {
+        let _this = this
+        this.$axios.get('technologyservice/businesslist', {})
+          .then(res => {
+            _this.optionsList = window.toolfun_gettreejson(res.data.items, 'Id', 'ParentId', 'Id,Name')
+          })
+          .catch(err => {
+            console.error(err)
+          })
+      },
 
-        }).catch(err => {
-          console.error(err)
+      //编辑
+      editData(row) {
+        let _this = this
+        _this.$router.push({
+          path: `/oilsupplier/supplierappend/subdata/dataopera`,
+          query: {
+            Id: row.Id,
+            editFlag: 1 //编辑标记: 1 修改,0 不修改
+          }
         })
       },
 
+      //删除
+      deleteData(Id) {
+        let _this = this
+        _this.$confirm('此操作将彻底删除该数据, 是否继续?', '提示', {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning'
+          })
+          .then(() => {
+            api.deleteEntity(Id, _this.$axios)
+            .then(res => {
+              if (res.data.code === 0) {
+                _this.$message({
+                  type: 'success',
+                  message: res.data.message
+                })
+                // 更新
+                this.initData()
+              } else {
+                _this.$message({
+                  type: 'warning',
+                  message: res.data.message
+                })
+              }
+            })
+            .catch(() => {})
+          })
+          .catch(() => {})
+      },
+
       searchCommand(command) {
         if (command == 'search') {
           this.dialogVisible = true
@@ -436,6 +313,7 @@
           this.clearSearch()
         }
       },
+
       //列表排序功能
       orderby(column) {
         if (column.order == 'ascending') {
@@ -444,47 +322,27 @@
           this.Column.Order = 'desc'
         }
         this.Column.Prop = column.prop
-        this.initDatas()
+        this.initData()
       },
       clearSearch() {
         Object.assign(this.searchForm, this.searchFormReset);
         //this.searchForm = this.searchFormReset;
         this.CreateOn = ''
-        this.initDatas()
+        this.initData()
       },
       handleSearch() {
         this.currentPage = 1;
         this.dialogVisible = false;
-        this.initDatas();
+        this.initData();
       },
       handleCurrentChange(value) {
         this.currentPage = value
-        this.initDatas()
+        this.initData()
       },
       handleSizeChange(value) {
         this.size = value
         this.currentPage = 1
-        this.initDatas()
-      },
-      deleteEntity(row) {
-        row.deleteConfirmFlag = false;
-        api.deleteEntity(row.Id, this.$axios).then(res => {
-          if (res.data.code === 0) {
-            this.initDatas();
-            this.$message({
-              type: 'success',
-              message: res.data.message
-            });
-
-          } else {
-            this.$message({
-              type: 'warning',
-              message: res.data.message
-            });
-          }
-        }).catch(err => {
-          console.error(err)
-        });
+        this.initData()
       },
 
       jstimehandle(val) {
@@ -492,11 +350,13 @@
           return '----'
         } else if (val === '0001-01-01T08:00:00+08:00') {
           return '----'
+        } else if (val === '0001-01-01T00:00:00Z') {
+          return '----'
         } else if (val === '5000-01-01T23:59:59+08:00') {
           return '永久'
         } else {
           val = val.replace('T', ' ')
-          return val.substring(0, 10)
+          return val.substring(0, 19)
         }
       },
 

+ 7 - 186
src/dashoo.cn/frontend_web/src/pages/oilsupplier/supplierappend/subdata/datalist.vue

@@ -4,148 +4,18 @@
       <el-table :data="entityList" border height="calc(100vh - 345px)" style="width: 100%" @sort-change="orderby">
         <el-table-column label="操作" min-width="100" align="center" fixed>
           <template slot-scope="scope">
-            <el-button type="text" title="编辑" size="small" icon="el-icon-edit" @click="EditEntity(scope.row)"></el-button>
-            <el-popover placement="top" title="提示" v-model="scope.row.deleteConfirmFlag">
-              <el-alert
-                title=""
-                description="确认要删除吗?"
-                type="warning"
-                :closable="false">
-              </el-alert>
-              <br/>
-              <div style="text-align: right; margin: 0">
-                <el-button type="primary" size="mini" @click="deleteEntity(scope.row)">删除</el-button>
-              </div>
-              <el-button slot="reference" type="text" title="删除" style="margin-left:3px" size="small" @click="scope.row.deleteConfirmFlag = true">
-                <i class="el-icon-delete"></i>
-              </el-button>
-            </el-popover>
+            <el-button type="text" title="编辑" size="medium" icon="el-icon-edit" @click="EditEntity(scope.row)"></el-button>
+            <el-button type="text" title="删除" size="medium" icon="el-icon-delete" @click="deleteData(scope.row.Id)"></el-button>
           </template>
         </el-table-column>
-
-        <el-table-column v-for="column in tableColumns" :key="column.Id"
-                         v-if="column.prop != 'CreateOn'" :prop="column.prop" sortable min-width="100" :label="column.label" align="center" show-overflow-tooltip></el-table-column>
-
-        <!--<el-table-column prop="CreateOn" sortable min-width="150" label="生成时间" align="center" show-overflow-tooltip>
-          <template scope="scope">
-            {{ jstimehandle(scope.row.CreateOn+'') }}
-          </template>
-        </el-table-column>-->
+        <el-table-column prop="Code" label="分类编码" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="Name" label="分类名称" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="Remark" label="备注" show-overflow-tooltip></el-table-column>
       </el-table>
       <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
                      :page-sizes="[10, 15, 20, 25]" :page-size="size" layout="total, sizes, prev, pager, next, jumper" :total="currentItemCount">
       </el-pagination>
     </el-card>
-
-    <el-dialog title="高级查询" :visible.sync="dialogVisible" width="720px">
-      <el-form ref="advancedsearchForm" label-width="110px">
-        <el-row>
-
-          <el-col :span="12">
-            <el-form-item label="生成时间">
-              <el-date-picker size="mini" v-model="CreateOn" type="daterange" style="width:100%" range-separator="至"
-                              start-placeholder="生成日期" end-placeholder="结束日期"></el-date-picker>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="">
-              <el-input size="mini" v-model="searchForm.Id" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="供方基本信息表主键">
-              <el-input size="mini" v-model="searchForm.SupplierId" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="供方准入证书信息表主键">
-              <el-input size="mini" v-model="searchForm.SupplierCertId" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="增项信息表ID">
-              <el-input size="mini" v-model="searchForm.SupplierCertAppendId" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="分类表主键(物资类或基建类或技术服务类)">
-              <el-input size="mini" v-model="searchForm.SubClassId" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="分类编码">
-              <el-input size="mini" v-model="searchForm.Code" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="分类名称">
-              <el-input size="mini" v-model="searchForm.Name" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="备注">
-              <el-input size="mini" v-model="searchForm.Remark" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="删除状态,0正常,1已删除">
-              <el-input size="mini" v-model="searchForm.IsDelete" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="">
-              <el-input size="mini" v-model="searchForm.CreateOn" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="">
-              <el-input size="mini" v-model="searchForm.CreateUserId" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="">
-              <el-input size="mini" v-model="searchForm.CreateBy" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="">
-              <el-input size="mini" v-model="searchForm.ModifiedOn" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="">
-              <el-input size="mini" v-model="searchForm.ModifiedUserId" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="">
-              <el-input size="mini" v-model="searchForm.ModifiedBy" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-        </el-row>
-      </el-form>
-      <span slot="footer" class="dialog-footer">
-        <el-button size="mini" @click="dialogVisible = false">取 消</el-button>
-        <el-button size="mini" type="primary" @click="handleSearch">查 询</el-button>
-      </span>
-    </el-dialog>
-
   </div>
 </template>
 <script>
@@ -197,38 +67,12 @@
           ModifiedOn: '',
           ModifiedUserId: '',
           ModifiedBy: '',
-
         },
-        tableColumns: [
-          {
-            prop: "Code",
-            label: '分类编码',
-            width: 100,
-            sort: true
-          },
-
-          {
-            prop: "Name",
-            label: '分类名称',
-            width: 100,
-            sort: true
-          },
-
-          {
-            prop: "Remark",
-            label: '备注',
-            width: 100,
-            sort: true
-          }
-        ]
       }
     },
     created() {
-      //查询条件初始值备份
-      Object.assign(this.searchFormReset, this.searchForm);
       //查询列表
       this.initDatas();
-      //this.getDictOptions()
     },
     methods: {
       initDatas() {
@@ -238,13 +82,10 @@
           _size: this.size,
           Order: this.Column.Order,
           Prop: this.Column.Prop,
+          SupplierCertAppendId: 1,
         };
-
-        this.searchForm.DataEntryId = this.DataEntryId;
-        //查询条件
-        Object.assign(params, this.searchForm);
         //访问接口
-        api.getList('', params, this.$axios).then(res => {
+        api.getList(params, this.$axios).then(res => {
           this.entityList = res.data.items
           this.currentItemCount = res.data.currentItemCount
         }).catch(err => {
@@ -252,16 +93,6 @@
         })
       },
 
-      getDictOptions() {
-        api.getDictList(this.$axios).then(res => {
-          //this.dictOptions.customerList = res.data.items['customerList']
-          //this.dictOptions.projectList = res.data.items['projectList']
-
-        }).catch(err => {
-          console.error(err)
-        })
-      },
-
       searchCommand(command) {
         if (command == 'search') {
           this.dialogVisible = true
@@ -279,16 +110,6 @@
         this.Column.Prop = column.prop
         this.initDatas()
       },
-      clearSearch() {
-        this.searchForm = this.searchFormReset;
-        this.CreateOn = ''
-        this.initDatas()
-      },
-      handleSearch() {
-        this.currentPage = 1;
-        this.dialogVisible = false;
-        this.initDatas();
-      },
       handleCurrentChange(value) {
         this.currentPage = value
         this.initDatas()

+ 387 - 231
src/dashoo.cn/frontend_web/src/pages/oilsupplier/supplierappend/subdata/dataopera.vue

@@ -1,10 +1,8 @@
-
-
 <template>
   <div>
     <el-breadcrumb class="heading">
       <el-breadcrumb-item :to="{ path: '/' }">平台首页</el-breadcrumb-item>
-      <el-breadcrumb-item :to="{ path: '/oilsupplier/supplierappend' }">增项信息表</el-breadcrumb-item>
+      <el-breadcrumb-item :to="{ path: '/oilsupplier/supplierappend' }">增项信息表</el-breadcrumb-item>
       <el-breadcrumb-item>编辑</el-breadcrumb-item>
     </el-breadcrumb>
     <el-card class="box-card">
@@ -13,94 +11,114 @@
           <i class="icon icon-table2"></i> 编辑
         </span>
         <span style="float: right;">
-          <!--<el-button type="plain" size="mini" style="margin-left:10px; margin-top: -4px;" @click="activeName='1'">添加</el-button>-->
-
-          <el-button type="plain" @click="ShowSearchDialog" size="mini" style="margin-left:10px; margin-top: -4px;">查询</el-button>
-
           <router-link :to="'/oilsupplier/supplierappend'">
             <el-button type="primary" size="mini" style="margin-left: 8px">返回</el-button>
           </router-link>
         </span>
       </div>
-      <el-collapse accordion v-model="activeName">
-        <el-collapse-item name="1">
-          <template slot="title">
-            增项录入<i class="header-icon el-icon-info"></i>
-          </template>
-          <el-form label-width="150px" ref="EntityForm" :model="formData">
+      <div>
+        <el-card class="box-card">
+          <div slot="header">
+            <span><i class="icon icon-table2"></i> 增项信息录入</span>
+            <el-button style="float: right; padding: 3px 0" type="text" @click="saveEntity()">保存信息</el-button>
+          </div>
+          <el-form label-width="150px" ref="EntityForm" :rules="rules" :model="formData">
             <el-row>
-              <!--<el-col :span="8">
-                <el-form-item label="DEMO">
-                  <el-select ref="selectWellNo" v-model="formData.WellNoId" filterable placeholder="请选择" style="width: 100%">
-                    <el-option
-                      v-for="item in wellNoOptions"
-                      :key="item.Id"
-                      :label="item.Value"
-                      :value="item.Id">
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>-->
-
-              <!--<el-col :span="8">
-                <el-form-item label="">
-                  <el-input v-model="formData.Id" placeholder="请输入"  style="width: 100%"></el-input>
+              <el-col :span="12">
+                <el-form-item label="推荐单位名称" prop="RecUnitName">
+                  <el-input v-model="formData.RecUnitName" placeholder="请输入推荐单位名称"></el-input>
                 </el-form-item>
               </el-col>
-
-              <el-col :span="8">
-                <el-form-item label="供方基本信息表主键">
-                  <el-input v-model="formData.SupplierId" placeholder="请输入"  style="width: 100%"></el-input>
+              <el-col :span="12">
+                <el-form-item label="推荐单位编码" prop="RecUnitId">
+                  <el-input v-model="formData.RecUnitId" placeholder="请输入推荐单位编码"></el-input>
                 </el-form-item>
               </el-col>
-
-              <el-col :span="8">
-                <el-form-item label="供方准入证书信息表主键">
-                  <el-input v-model="formData.SupplierCertId" placeholder="请输入"  style="width: 100%"></el-input>
+              <el-col :span="12">
+                <el-form-item label="选择增项" prop="checkSelectedOptList">
+                  <el-cascader :options="optionsList" style="width:100%" :props="orgtreeprops" change-on-select :show-all-levels="false" 
+                    v-model="formData.selectedOptList" placeholder="请选择增项">
+                  </el-cascader>
                 </el-form-item>
               </el-col>
-
-              <el-col :span="8">
-                <el-form-item label="增项信息表ID">
-                  <el-input v-model="formData.SupplierCertAppendId" placeholder="请输入"  style="width: 100%"></el-input>
+              <el-col :span="12">
+                <el-form-item label="备注" prop="Remark">
+                  <el-input type="textarea" v-model="formData.Remark" placeholder="请输入"  style="width: 100%"></el-input>
                 </el-form-item>
               </el-col>
-
-              <el-col :span="8">
-                <el-form-item label="分类表主键(物资类或基建类或技术服务类)">
-                  <el-input v-model="formData.SubClassId" placeholder="请输入"  style="width: 100%"></el-input>
-                </el-form-item>
-              </el-col>-->
-
-              <el-col :span="24">
-                <el-form-item label="选择增项">
-                  <el-input v-model="formData.Code" placeholder="请输入"  style="width: 100%"></el-input>
+            </el-row>
+          </el-form>
+        </el-card>
+        <el-card class="box-card" style="margin-top: 10px;">
+          <div slot="header">
+            <span><i class="icon icon-table2"></i> 增项分类录入</span>
+            <el-button style="float: right; padding: 3px 0" type="text" @click="saveSortEntity()">添加</el-button>
+          </div>
+          <el-form label-width="150px" ref="sortEntityForm" :rules="sortEntityFormRules" :model="sortFormData">
+            <el-row>
+              <el-col :span="12">
+                <el-form-item label="分类名称" prop="Name">
+                  <el-input v-model="sortFormData.Name" placeholder="请输入分类名称"></el-input>
                 </el-form-item>
               </el-col>
-
-              <!--<el-col :span="8">
-                <el-form-item label="分类名称">
-                  <el-input v-model="formData.Name" placeholder="请输入"  style="width: 100%"></el-input>
-                </el-form-item>
-              </el-col>-->
-
-              <el-col :span="24">
-                <el-form-item label="备注">
-                  <el-input type="textarea" v-model="formData.Remark" placeholder="请输入"  style="width: 100%"></el-input>
+              <el-col :span="12">
+                <el-form-item label="分类编码" prop="Code">
+                  <el-input v-model="sortFormData.Code" placeholder="请输入分类编码"></el-input>
                 </el-form-item>
               </el-col>
-
               <el-col :span="24">
-                <el-form-item :span="24" style="text-align: center;">
-                  <el-button type="primary" size="small" @click="continueInsert"><i class="el-icon-circle-check"></i> 新增</el-button>
+                <el-form-item label="备注"  prop="Remark">
+                  <el-input type="textarea" v-model="sortFormData.Remark" placeholder="请输入备注"  style="width: 100%"></el-input>
                 </el-form-item>
               </el-col>
             </el-row>
           </el-form>
-        </el-collapse-item>
-      </el-collapse>
-      <data-list ref="DatalistCompoment" :DataEntryId="queryParams.DataEntryId" @edit-entity="subListEditEntity"></data-list>
+        </el-card>    
+        <el-card class="box-card" style="margin-top: 10px;">
+          <el-table :data="entityList" border height="calc(100vh - 345px)" style="width: 100%" @sort-change="orderby">
+            <el-table-column label="操作" min-width="100" align="center" fixed>
+              <template slot-scope="scope">
+                <el-button type="text" title="编辑" size="medium" icon="el-icon-edit" @click="editData(scope.row)"></el-button>
+                <el-button type="text" title="删除" size="medium" icon="el-icon-delete" @click="deleteData(scope.row.Id)"></el-button>
+              </template>
+            </el-table-column>
+            <el-table-column prop="Code" label="分类编码" show-overflow-tooltip></el-table-column>
+            <el-table-column prop="Name" label="分类名称" show-overflow-tooltip></el-table-column>
+            <el-table-column prop="Remark" label="备注" show-overflow-tooltip></el-table-column>
+          </el-table>
+          <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+                        :page-sizes="[10, 15, 20, 25]" :page-size="size" layout="total, sizes, prev, pager, next, jumper" :total="currentItemCount">
+          </el-pagination>
+        </el-card>
+      </div>
     </el-card>
+
+    <el-dialog title="修改" :visible.sync="editDialogVisible" width="800px">
+      <el-form label-width="150px" ref="dialogFormData" :rules="sortEntityFormRules" :model="dialogFormData" >
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="分类名称" prop="Name">
+              <el-input v-model="dialogFormData.Name" placeholder="请输入分类名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="分类编码" prop="Code">
+              <el-input v-model="dialogFormData.Code" placeholder="请输入分类编码"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="备注"  prop="Remark">
+              <el-input type="textarea" v-model="dialogFormData.Remark" placeholder="请输入备注"  style="width: 100%"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="mini" @click="cancelOption()">取 消</el-button>
+        <el-button size="mini" type="primary" @click="ensureOption()">确 定</el-button>
+      </span>
+    </el-dialog>
+
   </div>
 </template>
 
@@ -109,7 +127,7 @@
     mapGetters
   } from 'vuex'
   import api from '@/api/oilsupplier/supplierappendsub'
-  import DataList from './datalist.vue'
+  import api2 from '@/api/oilsupplier/supplierappend'
 
   export default {
     computed: {
@@ -117,24 +135,45 @@
         authUser: 'authUser'
       })
     },
-    name: 'oilsuppliercertappendsubEdit',
-    components: {
-      DataList
-    },
+    name: 'oilsuppliercertappendsub',
 
     data() {
+      var CheckSelectedOption = (rule, value, callback) => {
+        if (this.formData.selectedOptList && this.formData.selectedOptList.length < 1) {
+          callback(new Error('请选择增项'))
+        } else {
+          callback()
+        }
+      }
       return {
-        serviceId: '',
-        activeName: '1',
-        queryParams: {
-          EId: 0,
-          TaskBalanceId: 0,
-          DataEntryId: 0,
+        optionsList: [], //技术服务类层级选择列表
+        orgtreeprops: {
+          value: 'id',
+          label: 'Name',
+          children: 'children'
         },
-        saveBtnName: '新增保存',
-
-        historyData: {},
+        //增项信息表
         formData: {
+          Id: '',
+          SupplierId: 1,
+          SupplierCertId: 1,
+          RecUnitId: '',
+          RecUnitName: '',
+          WorkRange: '',
+          Remark: '',//备注
+          selectedOptList: [],
+        },
+        editDialogVisible: false,//编辑增项分类
+        sortFormData: {
+          SupplierId: 1,//供方表ID
+          SupplierCertId: 1,//供方证书表ID
+          SupplierCertAppendId: '',//增项信息表ID
+          SubClassId: 1,//分类表主键(物资类或基建类或技术服务类)
+          Code: '',//分类编码
+          Name: '',//分类名称
+          Remark: '',//备注
+        },
+        dialogFormData: {
           Id: '',
           SupplierId: '',//供方表ID
           SupplierCertId: '',//供方证书表ID
@@ -143,184 +182,313 @@
           Code: '',//分类编码
           Name: '',//分类名称
           Remark: '',//备注
-          IsDelete: '',//删除状态,0正常,1已删除
-          CreateOn: '',//创建时间
-          CreateUserId: '',
-          CreateBy: '',
-          ModifiedOn: '',
-          ModifiedUserId: '',
-          ModifiedBy: '',
-
         },
-
-        //下拉选择项
-        EntrustCorpOptions: [],
-        InspecCorpOptions: [],
-        PositionCheckOptions: [],
-        PhaseOptions: [
-          {
-            Label: '单相(D)',
-            Value: 'D'
-          },
-          {
-            Label: '三相(S)',
-            Value: 'S'
-          }
-        ]
-
+        //列表数据
+        entityList: [],
+        //分页参数
+        size: 10,
+        currentPage: 1,
+        currentItemCount: 0,
+        //列表排序
+        Column: {
+          Order: '',
+          Prop: ''
+        },
+        //表单规则
+        rules: {
+          checkSelectedOptList: [{
+            required: true,
+            validator: CheckSelectedOption,
+            trigger: 'blur'
+          }],
+        },
+        sortEntityFormRules: {
+          Name: [{
+            required: true,
+            message: '请输入分类名称',
+            trigger: 'blur'
+          }],
+        },
+        Id: '', //传的参数
+        editFlag: '' //编辑操作标记
       }
     },
     created() {
-      this.queryParams.EId = this.$route.query.eid;
-      this.queryParams.TaskBalanceId = this.$route.query.tbid;
-      this.queryParams.DataEntryId = this.$route.query.deid;
-
-      this.getDictOptions();
-      if(this.serviceId>0) {
-        this.formData.Id = this.serviceId;
-        this.initDatas();
-      } else {
-        this.formData.Id = 0;
-        this.formData.EId = this.queryParams.EId;
-        this.formData.TaskBalanceId = this.queryParams.TaskBalanceId;
-        this.formData.DataEntryId = this.queryParams.DataEntryId;
-        this.getEntrustInfo(this.queryParams.EId);
+      this.initDatas()
+      this.Id = this.$route.query.Id
+      this.editFlag = this.$route.query.editFlag
+      if(this.editFlag == '1' && this.Id !== '') {
+        this.getEntityById()
+        this.sortFormData.SupplierCertAppendId = this.Id
+        this.getSortList()
       }
-      //初始值备份
-      Object.assign(this.historyData, this.formData);
     },
     methods: {
       initDatas() {
-        if(this.formData.Id) {
-          api.getEntity(this.formData.Id, this.$axios).then(res => {
-            this.formData = res.data;
-            //刷新子列表
-            this.$refs["DatalistCompoment"].initDatas();
-          }).catch(err => {
-            console.error(err)
-          });
-        }
+        //获取技术服务类层级列表
+        this.getTechTreeList()
       },
 
-      getDictOptions() {
-        api.getDictList(this.$axios).then(res => {
-          this.EntrustCorpOptions = res.data.items['EntrustCorp'];
-          this.InspecCorpOptions = res.data.items['EntrustCorp'];
-          this.PositionCheckOptions = res.data.items['PositionCheck'];
+      //获取技术服务类层级列表
+      getTechTreeList() {
+        let _this = this
+        this.$axios.get('technologyservice/businesslist', {})
+          .then(res => {
+            _this.optionsList = window.toolfun_gettreejson(res.data.items, 'Id', 'ParentId', 'Id,Name')
+          })
+          .catch(err => {
+            console.error(err)
+          })
+      },
 
-          //this.wellNoOptions = res.data.items['WellNo']
-          //this.supervisersOptions = res.data.items['Supervisers']
+      //获取修改的增项信息
+      getEntityById() {
+        let _this = this
+        api2.getEntityById(_this.Id, _this.$axios).then(res => {
+          _this.formData = res.data
+          //显示原增项结构
+          if (_this.formData.WorkRange != null) {
+            let arr = _this.formData.WorkRange.split(',')
+            let arr2 = []
+            for (let i = 0; i < arr.length; i++) {
+               arr2.push(parseInt(arr[i]))
+            }
+            _this.formData.selectedOptList = arr2
+          }
         }).catch(err => {
           console.error(err)
         })
       },
 
-      getEntrustInfo(EId) {
-        /*entrustApi.getEntrustInfo(EId, this.$axios).then(res => {
-          this.formData.EntrustCorp = res.data.CustomerId;
+      //更新增项信息
+      updateData() {
+        let _this = this
+        if (_this.formData.selectedOptList != null) {
+          _this.formData.WorkRange = _this.formData.selectedOptList.toString()
+        }
+        api2.updateEntity(_this.Id, _this.formData, _this.$axios).then(res => {
+          if (res.data.code === 0) {
+            this.$message({
+              type: 'success',
+              message: res.data.message
+            });
+          } else {
+            this.$message({
+              type: 'warning',
+              message: res.data.message
+            });
+          }
         }).catch(err => {
-          // handle error
           console.error(err)
-        })*/
-      },
-      continueInsert() {
-        this.formData.Id = 0;
-        this.saveBtnName = '新增保存';
-        this.saveEntity();
-      },
-      resetFormData() {
-
-        Object.assign(this.formData, this.historyData);
-        this.saveBtnName = '新增保存';
-        this.formData.Id = 0;
-        this.formData.EId = this.formData.EId;
-        this.formData.TaskBalanceId = this.formData.TaskBalanceId;
-        this.formData.DataEntryId = this.queryParams.DataEntryId;
-        this.getEntrustInfo(this.formData.EId);
+        })
       },
 
-      subListEditEntity(entityId) {
-        this.serviceId = entityId;
-        this.formData.Id = this.serviceId;
-        this.saveBtnName = '修改保存';
-        this.initDatas();
-
+      //获取增项分类表
+      getSortList() {
+        //分页及列表条件
+        let params = {
+          _currentPage: this.currentPage,
+          _size: this.size,
+          Order: this.Column.Order,
+          Prop: this.Column.Prop,
+          SupplierCertAppendId: this.sortFormData.SupplierCertAppendId,
+        };
+        //访问接口
+        api.getList(params, this.$axios).then(res => {
+          this.entityList = res.data.items
+          this.currentItemCount = res.data.currentItemCount
+        }).catch(err => {
+          console.error(err)
+        })
       },
 
-      //保存新增信息
+      //保存增信息
       saveEntity() {
         this.$refs['EntityForm'].validate((valid) => {
           if (valid) {
-            /*this.formData.EId = this.queryParams.EId;
-             this.formData.TaskBalanceId = this.queryParams.TaskBalanceId;
-             this.formData.DataEntryId = this.queryParams.DataEntryId;*/
-            //if(!this.formData.EId || !this.formData.TaskBalanceId) {
-            if(!this.formData.EId || !this.formData.TaskBalanceId || !this.formData.DataEntryId) {
-              this.$message.warning("委托信息不完整,无法保存,请返回重试!");
-              return;
-            }
-
-            this.formData.InspecCorp = this.$refs.selectInspecCorp.selectedLabel + '';
-            this.formData.EntrustCorp = this.$refs.selectEntrustCorp.selectedLabel + '';
-
-            if (!this.formData.Id) {
-              this.addEntity();
+            if(this.editFlag == '1' && this.Id !== '') {
+              this.updateData()
             } else {
-              this.updateEntity();
+              this.addAppend()
             }
-
           } else {
             return false
           }
         })
       },
-      //新增信息
-      addEntity() {
-        api.addEntity(this.formData, this.$axios).then(res => {
-          if (res.data.code === 0) {
-            //保存成功后,初始化数据,变成修改
-            this.formData.Id = res.data.item;
-            this.saveBtnName = '修改保存';
-            this.initDatas();
-            this.$message({
-              type: 'success',
-              message: res.data.message
-            });
 
-          } else {
-            this.$message({
-              type: 'warning',
-              message: res.data.message
-            });
-          }
-        }).catch(err => {
+      //添加增项信息
+      addAppend() {
+        let _this = this
+        if (_this.formData.selectedOptList != null) {
+          _this.formData.WorkRange = _this.formData.selectedOptList.toString()
+        }
+        _this.$axios.post('/suppliercertappend/addappend/', _this.formData)
+          .then(res => {
+            if (res.data.code === 0) {
+              _this.sortFormData.SupplierCertAppendId = res.data.item //接收插入数据后返回的Id
+              _this.$message({
+                type: 'success',
+                message: res.data.message,
+              })
+              this.activeName = 's2'
+            } else {
+              _this.$message({
+                type: 'warning',
+                message: res.data.message
+              })
+            }
+          })
+        .catch(err => {
           console.error(err)
-        });
+        })
       },
-      //更新
-      updateEntity() {
-        api.updateEntity(this.formData.Id, this.formData, this.$axios).then(res => {
-          if (res.data.code === 0) {
-            //保存成功后,初始化数据,变成修改
-            this.initDatas();
-            this.$message({
-              type: 'success',
-              message: res.data.message
-            });
 
+      //保存新增分类信息
+      saveSortEntity() {
+        //先判断是否保存了增项信息
+        if(this.checkAppendSave()) {
+          this.$refs['sortEntityForm'].validate((valid) => {
+            if (valid) {
+              this.addSortAppend()
+            } else {
+              return false
+            }
+          })
+        }
+      },
+
+      //判断是否保存了增项信息
+      checkAppendSave() {
+        if (this.sortFormData.SupplierCertAppendId == '' && this.editFlag == null) {
+          this.$message({
+            type: 'error',
+            message: '无法保存,请先保存增项信息!'
+          })
+          return false
+        }
+        return true
+      },
+      
+      //添加增项分类信息
+      addSortAppend() {
+        let _this = this
+        _this.sortFormData.SupplierCertAppendId = parseInt(_this.sortFormData.SupplierCertAppendId)
+        _this.$axios.post('/suppliercertappendsub/addappendsub/', _this.sortFormData)
+          .then(res => {
+            if (res.data.code === 0) {
+              _this.$message({
+                type: 'success',
+                message: res.data.message,
+              })
+              //获取增项分类表
+              _this.getSortList()
+            } else {
+              _this.$message({
+                type: 'warning',
+                message: res.data.message
+              })
+            }
+          })
+          .catch(err => {
+            console.error(err)
+          })
+      },
+
+      //编辑增项分类
+      editData(row) {
+        let _this = this
+        _this.editDialogVisible = true
+        console.log("*****编辑row******",row)
+        _this.dialogFormData = row
+        console.log("*****编辑_this.dialogFormData******",_this.dialogFormData)
+      },
+
+      //取消
+      cancelOption() {
+        let _this = this
+        _this.editDialogVisible = false
+      },
+
+      //确定
+      ensureOption() {
+        this.$refs['dialogFormData'].validate((valid) => {
+          if (valid) {
+            let _this = this
+            api.updateEntity(_this.dialogFormData.Id, _this.dialogFormData, _this.$axios).then(res => {
+              if (res.data.code === 0) {
+                this.$message({
+                  type: 'success',
+                  message: res.data.message
+                });
+                //关闭dialog
+                _this.editDialogVisible = false
+                //更新列表
+                this.getSortList()
+              } else {
+                this.$message({
+                  type: 'warning',
+                  message: res.data.message
+                });
+              }
+            }).catch(err => {
+              console.error(err)
+            })
           } else {
-            this.$message({
-              type: 'warning',
-              message: res.data.message
-            });
+            return false
           }
-        }).catch(err => {
-          console.error(err)
-        });
+        })
       },
 
-      ShowSearchDialog() {
-        this.$refs["DatalistCompoment"].searchCommand('search');
+      //删除增项分类信息
+      deleteData(Id) {
+        let _this = this
+        _this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          api.deleteEntity(Id, _this.$axios)
+            .then(res => {
+              // response
+              if (res.data.code === 0) {
+                _this.$message({
+                  type: 'success',
+                  message: res.data.message
+                })
+                // 更新列表
+                this.getSortList()
+              } else {
+                _this.$message({
+                  type: 'warning',
+                  message: res.data.message
+                })
+              }
+            })
+            .catch(() => {})
+        })
+        .catch(() => {})
+      },
+
+      //列表排序功能
+      orderby(column) {
+        if (column.order == 'ascending') {
+          this.Column.Order = 'asc'
+        } else if (column.order == 'descending') {
+          this.Column.Order = 'desc'
+        }
+        this.Column.Prop = column.prop
+        this.initData()
+      },
+      //分页功能
+      handleCurrentChange(value) {
+        this.currentPage = value
+        this.initData()
+      },
+      handleSizeChange(value) {
+        this.size = value
+        this.currentPage = 1
+        this.initData()
       },
 
       jstimehandle(val) {
@@ -335,18 +503,6 @@
           return val.substring(0, 10)
         }
       },
-
-      formatDateTime(date) {
-        var y = date.getFullYear();
-        var m = date.getMonth() + 1;
-        m = m < 10 ? ('0' + m) : m;
-        var d = date.getDate();
-        d = d < 10 ? ('0' + d) : d;
-        var h = date.getHours();
-        var minute = date.getMinutes();
-        minute = minute < 10 ? ('0' + minute) : minute;
-        return y + '-' + m + '-' + d + ' ' + h + ':' + minute;
-      }
     }
   }