2
3
lining преди 6 години
родител
ревизия
2736413521

+ 25 - 0
src/dashoo.cn/backend/api/business/auditsetting/oilauditsetting.go

@@ -0,0 +1,25 @@
+package auditsetting
+
+import (
+	"time"
+)
+
+type Base_OilAuditSetting struct {
+	Id             int       `xorm:"not null pk autoincr INT(10)"`
+	OrganizeId     int       `xorm:"not null default 0 comment('单位ID') INT(10)"`
+	OrganizeName   string    `xorm:"comment('单位名称') VARCHAR(100)"`
+	AuditStepCode  string    `xorm:"not null default '0' comment('审批步骤编码') VARCHAR(20)"`
+	AuditStepName  string    `xorm:"comment('审批步骤名称') VARCHAR(50)"`
+	RoleId         int       `xorm:"not null default 0 comment('角色ID') INT(10)"`
+	RoleName       string    `xorm:"comment('角色名称') VARCHAR(50)"`
+	WorkFlowCord   string    `xorm:"comment('工作流编码') VARCHAR(50)"`
+	WorkFlowName   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)"`
+}

+ 23 - 0
src/dashoo.cn/backend/api/business/auditsetting/oilauditsettingService.go

@@ -0,0 +1,23 @@
+package auditsetting
+
+import (
+	. "dashoo.cn/backend/api/mydb"
+	"github.com/go-xorm/xorm"
+)
+
+type OilAuditSettingService struct {
+	MyServiceBase
+}
+
+func GetOilAuditSettingService(xormEngine *xorm.Engine) *OilAuditSettingService {
+	s := new(OilAuditSettingService)
+	s.DBE = xormEngine
+	return s
+}
+
+func (s *OilAuditSettingService) GetAuditStepRoleEntity(tablename string, organizeId string, auditStepCode string, entityPtr interface{}) {
+	var where string
+	where = " 1=1 and OrganizeId = '" + organizeId + "' and AuditStepCode = '" + auditStepCode + "' "
+	s.GetEntityByWhere(tablename, where, entityPtr)
+	return
+}

+ 12 - 0
src/dashoo.cn/backend/api/business/role/roleService.go

@@ -114,3 +114,15 @@ func (s *RoleService) GetUidsByRoleId(accCode, roleId string) (userInfo []userRo
 	LogError(err)
 	return
 }
+
+func (s *RoleService) GetMyRoleList(order, userid string, entitiesPtr *[]userRole.Base_Role, where ...string) {
+	var search string = "1=1"
+	rids := s.GetRoleids(userid)
+
+	search = search + " and Id in (" + strings.Join(rids, ",") + ")"
+
+	if len(where) > 0 {
+		search = search + " and " + where[0]
+	}
+	s.DBE.Where(search).OrderBy(order).Find(entitiesPtr)
+}

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

@@ -223,6 +223,7 @@ var (
 	BaseUserName                             string = "Base_User"           //用户表
 	UserQualificationName                    string = "UserQualification"   //用户资质表
 	LimsInstrumentGroup                      string = "LimsInstrumentGroup" // 检测仪器关联
+	OilAuditSettingName                          string = "Base_OilAuditSetting" // 单位审批步骤自定义配置
 )
 
 //分页信息及数据

+ 289 - 0
src/dashoo.cn/backend/api/controllers/system/auditsetting.go

@@ -0,0 +1,289 @@
+package system
+
+import (
+	"dashoo.cn/backend/api/business/baseUser"
+	"dashoo.cn/backend/api/business/items"
+	"dashoo.cn/backend/api/business/organize"
+	"dashoo.cn/backend/api/business/role"
+	. "dashoo.cn/backend/api/controllers"
+	"dashoo.cn/business2/userRole"
+	"dashoo.cn/utils"
+	"encoding/json"
+	"strings"
+	"dashoo.cn/backend/api/business/auditsetting"
+	"time"
+)
+
+type OilAuditSettingController struct {
+	BaseController
+}
+
+// @Title 获取列表
+// @Description get user by token
+// @Success 200 {object} []auditsetting.Base_OilAuditSetting
+// @router /list [get]
+func (this *OilAuditSettingController) GetEntityList() {
+
+	//获取分页信息
+	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
+		}
+	}
+	OrganizeId := this.GetString("OrganizeId")
+	OrganizeName := this.GetString("OrganizeName")
+	AuditStepCode := this.GetString("AuditStepCode")
+	AuditStepName := this.GetString("AuditStepName")
+	RoleId := this.GetString("RoleId")
+	RoleName := this.GetString("RoleName")
+	WorkFlowCord := this.GetString("WorkFlowCord")
+	WorkFlowName := this.GetString("WorkFlowName")
+	Remark := this.GetString("Remark")
+	CreateOn := this.GetString("CreateOn")
+
+	OrganizeId = this.User.DepartmentId //无权限看所有时,只看当前部门的数据
+	if OrganizeId != "" {
+		where = where + " and OrganizeId = '" + OrganizeId + "'"
+	}
+
+
+
+	if OrganizeName != "" {
+		where = where + " and OrganizeName like '%" + OrganizeName + "%'"
+	}
+
+
+	if AuditStepCode != "" {
+		where = where + " and AuditStepCode like '%" + AuditStepCode + "%'"
+	}
+
+
+	if AuditStepName != "" {
+		where = where + " and AuditStepName like '%" + AuditStepName + "%'"
+	}
+
+
+	if RoleId != "" {
+		where = where + " and RoleId like '%" + RoleId + "%'"
+	}
+
+
+	if RoleName != "" {
+		where = where + " and RoleName like '%" + RoleName + "%'"
+	}
+
+	if WorkFlowCord != "" {
+		where = where + " and WorkFlowCord like '%" + WorkFlowCord + "%'"
+	}
+
+	if WorkFlowName != "" {
+		where = where + " and WorkFlowName like '%" + WorkFlowName + "%'"
+	}
+
+	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 := auditsetting.GetOilAuditSettingService(utils.DBE)
+	var list []auditsetting.Base_OilAuditSetting
+	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 get user by token
+// @Success 200 {object} map[string]interface{}
+// @router /dictlist [get]
+func (this *OilAuditSettingController) GetDictList() {
+	dictList := make(map[string]interface{})
+	dictSvc := items.GetItemsService(utils.DBE)
+	userSvc := baseUser.GetBaseUserService(utils.DBE)
+	dictList["AuditStep"] = dictSvc.GetKeyValueItems("AuditStep", this.User.AccCode)
+	dictList["WorkFlow"] = dictSvc.GetKeyValueItems("WorkFlow", this.User.AccCode)
+	var userEntity userRole.Base_User
+	userSvc.GetEntityById(this.User.Id, &userEntity)
+	dictList["Supervisers"] = userSvc.GetUserListByDepartmentId(this.User.AccCode, userEntity.Departmentid)
+
+	svcRole := role.GetRoleService(utils.DBE)
+	var roles []userRole.Base_Role
+	where := "IsVisible=1"
+	svcRole.GetMyRoleList("CreateOn", utils.ToStr(this.User.Id), &roles, where)
+	dictList["RoleList"] = roles
+
+	svcOrgan := organize.GetOrganizeService(utils.DBE)
+	dictList["OrganizeId"] = this.User.DepartmentId
+	dictList["OrganizeName"] = svcOrgan.GetNameById(this.User.DepartmentId)
+
+	//var dictCustomer []svccustomer.Customer
+	//customerSvc.GetEntitysByWhere(this.User.AccCode + CustomerName, "", &dictCustomer)
+	//dictList["EntrustCorp"] = &dictCustomer
+
+	var datainfo DataInfo
+	datainfo.Items = dictList
+	this.Data["json"] = &datainfo
+	this.ServeJSON()
+}
+
+// @Title 获取实体
+// @Description 获取实体
+// @Success 200 {object} auditsetting.Base_OilAuditSetting
+// @router /get/:id [get]
+func (this *OilAuditSettingController) GetEntity() {
+	Id := this.Ctx.Input.Param(":id")
+
+	var model auditsetting.Base_OilAuditSetting
+	svc := auditsetting.GetOilAuditSettingService(utils.DBE)
+	svc.GetEntityByIdBytbl(OilAuditSettingName, Id, &model)
+
+	this.Data["json"] = &model
+	this.ServeJSON()
+}
+
+// @Title 添加
+// @Description 新增
+// @Param 	body body auditsetting.OilAuditSetting
+// @Success	200	{object} controllers.Request
+// @router /add [post]
+func (this *OilAuditSettingController) AddEntity() {
+	var model auditsetting.Base_OilAuditSetting
+	var jsonBlob = this.Ctx.Input.RequestBody
+	svc := auditsetting.GetOilAuditSettingService(utils.DBE)
+
+	json.Unmarshal(jsonBlob, &model)
+	model.CreateOn = time.Now()
+	model.CreateBy = this.User.Realname
+	model.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
+	model.OrganizeId, _ = utils.StrTo(this.User.DepartmentId).Int()
+
+	_, err := svc.InsertEntityBytbl(OilAuditSettingName, &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 	body body auditsetting.OilAuditSetting
+// @Success	200	{object} controllers.Request
+// @router /update/:id [post]
+func (this *OilAuditSettingController) UpdateEntity() {
+	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 auditsetting.Base_OilAuditSetting
+	svc := auditsetting.GetOilAuditSettingService(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{
+
+		"Id",
+		"OrganizeId",
+		"OrganizeName",
+		"AuditStepCode",
+		"AuditStepName",
+		"RoleId",
+		"RoleName",
+		"WorkFlowCord",
+		"WorkFlowName",
+		"Remark",
+		"IsDelete",
+		"CreateOn",
+		"CreateUserId",
+		"CreateBy",
+		"ModifiedOn",
+		"ModifiedUserId",
+		"ModifiedBy",
+	}
+	err := svc.UpdateEntityBytbl(OilAuditSettingName, 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 *OilAuditSettingController) 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 auditsetting.Base_OilAuditSetting
+	var entityempty auditsetting.Base_OilAuditSetting
+	svc := auditsetting.GetOilAuditSettingService(utils.DBE)
+	opdesc := "删除-" + Id
+	err := svc.DeleteOperationAndWriteLogBytbl(OilAuditSettingName, 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()
+	}
+}

+ 6 - 1
src/dashoo.cn/backend/api/routers/router.go

@@ -14,6 +14,7 @@ import (
 	"dashoo.cn/backend/api/controllers/setting"
 	"dashoo.cn/backend/api/controllers/system"
 	"dashoo.cn/backend/api/controllers/trigger"
+	"dashoo.cn/backend/api/controllers/workflow"
 	"github.com/astaxie/beego"
 	"github.com/astaxie/beego/plugins/cors"
 )
@@ -63,6 +64,11 @@ func init() {
 				&casbin.OrganizesController{},
 			),
 		),
+		beego.NSNamespace("/auditsetting",
+			beego.NSInclude(
+				&system.OilAuditSettingController{},
+			),
+		),
 		beego.NSNamespace("/module",
 			beego.NSInclude(
 				&casbin.ModuleController{},
@@ -243,7 +249,6 @@ func init() {
 				&workflow.WorkflowController{},
 			),
 		),
-
 	)
 	beego.AddNamespace(ns)
 }

+ 41 - 0
src/dashoo.cn/frontend_web/src/api/system/auditsetting.js

@@ -0,0 +1,41 @@
+export default {
+  getList (CreateOn, params, myAxios) {
+    return myAxios({
+      url: '/auditsetting/list?CreateOn=' + CreateOn,
+      method: 'GET',
+      params: params
+    })
+  },
+  getDictList (myAxios) {
+    return myAxios({
+      url: '/auditsetting/dictlist/',
+      method: 'GET'
+    })
+  },
+  getEntity (entityId, myAxios) {
+    return myAxios({
+      url: '/auditsetting/get/' + entityId,
+      method: 'GET'
+    })
+  },
+  addEntity (formData, myAxios) {
+    return myAxios({
+      url: '/auditsetting/add',
+      method: 'post',
+      data: formData
+    })
+  },
+  updateEntity (entityId, formData, myAxios) {
+    return myAxios({
+      url: '/auditsetting/update/' + entityId,
+      method: 'post',
+      data: formData
+    })
+  },
+  deleteEntity (entityId, myAxios) {
+    return myAxios({
+      url: '/auditsetting/delete/' + entityId,
+      method: 'delete'
+    })
+  }
+}

+ 274 - 0
src/dashoo.cn/frontend_web/src/pages/system/auditsetting/_opera/operation.vue

@@ -0,0 +1,274 @@
+
+
+<template>
+  <div>
+    <el-breadcrumb class="heading">
+      <el-breadcrumb-item :to="{ path: '/' }">平台首页</el-breadcrumb-item>
+      <el-breadcrumb-item :to="{ path: '/system/auditsetting' }">单位审批步骤自定义配置</el-breadcrumb-item>
+      <el-breadcrumb-item>编辑</el-breadcrumb-item>
+    </el-breadcrumb>
+    <el-card class="box-card" style="height: calc(100vh - 113px);">
+      <div slot="header">
+        <span>
+          <i class="icon icon-table2"></i> 编辑
+        </span>
+        <span style="float: right;">
+          <el-button type="primary" size="mini" @click="saveEntity">保存</el-button>
+          <router-link :to="'/system/auditsetting'">
+            <el-button type="primary" size="mini" style="margin-left: 8px">返回</el-button>
+          </router-link>
+        </span>
+      </div>
+      <el-form label-width="110px" ref="EntityForm" :model="formData">
+        <el-row>
+          <el-col :span="6">
+            <el-form-item label="单位名称" required>
+              <el-input v-model="formData.OrganizeName" placeholder="请输入" Readonly style="width: 100%"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="6">
+            <el-form-item label="审批步骤" required>
+              <el-select ref="selectAuditStep" v-model="formData.AuditStepCode" filterable placeholder="请选择" style="width: 100%">
+                <el-option
+                  v-for="item in auditStepOptions"
+                  :key="item.Id"
+                  :label="item.Key"
+                  :value="item.Value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="6">
+            <el-form-item label="角色" required>
+              <el-select ref="selectRole" v-model="formData.RoleId" filterable placeholder="请选择" style="width: 100%">
+                <el-option
+                  v-for="item in roleList"
+                  :key="item.Id"
+                  :label="item.Realname"
+                  :value="item.Id">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="工作流" required>
+              <el-select ref="selectWorkFlow" v-model="formData.WorkFlowCord" filterable placeholder="请选择" style="width: 100%">
+                <el-option
+                  v-for="item in WorkFlowOptions"
+                  :key="item.Id"
+                  :label="item.Key"
+                  :value="item.Value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="24">
+            <el-form-item label="备注">
+              <el-input v-model="formData.Remark" type="textarea" placeholder="请输入"  style="width: 100%"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </el-card>
+  </div>
+</template>
+
+<script>
+  import {
+    mapGetters
+  } from 'vuex'
+  import api from '@/api/system/auditsetting'
+  export default {
+    computed: {
+      ...mapGetters({
+        authUser: 'authUser'
+      })
+    },
+    name: 'oilauditsettingEdit',
+
+    data () {
+      return {
+        serviceId: '',
+        auditStepOptions: [],
+        roleList: [],
+        WorkFlowOptions: [],
+        formData: {
+          Id: '',
+          OrganizeId: '',
+          OrganizeName: '',
+          AuditStepCode: '',
+          AuditStepName: '',
+          RoleId: '',
+          RoleName: '',
+          WorkFlowCord: '',
+          WorkFlowName: '',
+          Remark: '',
+          IsDelete: '',
+          CreateOn: '',
+          CreateUserId: '',
+          CreateBy: '',
+          ModifiedOn: '',
+          ModifiedUserId: '',
+          ModifiedBy: ''
+
+        }
+        // 下拉选择项
+        // wellNoOptions: [],
+        // supervisersOptions: [],
+
+      }
+    },
+    created () {
+      this.serviceId = this.$route.params.opera
+      this.getDictOptions()
+      if (this.serviceId !== 'add' && this.serviceId > 0) {
+        this.formData.Id = this.serviceId
+        this.initDatas()
+      } else {
+        this.formData.Id = 0
+      }
+    },
+    methods: {
+      initDatas () {
+        if (this.formData.Id) {
+          api.getEntity(this.formData.Id, this.$axios).then(res => {
+            this.formData = res.data
+          }).catch(err => {
+            console.error(err)
+          })
+        }
+      },
+
+      getDictOptions () {
+        api.getDictList(this.$axios).then(res => {
+          this.auditStepOptions = res.data.items['AuditStep']
+          this.roleList = res.data.items['RoleList']
+          this.formData.OrganizeId = res.data.items['OrganizeId']
+          this.formData.OrganizeName = res.data.items['OrganizeName']
+          this.WorkFlowOptions = res.data.items['WorkFlow']
+          // this.supervisersOptions = res.data.items['Supervisers']
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+
+      // 保存信息
+      saveEntity () {
+        this.$refs['EntityForm'].validate((valid) => {
+          if (valid) {
+            // this.formData.WellNo = this.$refs.selectWellNo.selectedLabel + '';
+            this.formData.AuditStepName = this.$refs.selectAuditStep.selectedLabel + ''
+            this.formData.RoleName = this.$refs.selectRole.selectedLabel + ''
+            this.formData.WorkFlowName = this.$refs.selectWorkFlow.selectedLabel + ''
+            this.formData.OrganizeId = parseInt(this.formData.OrganizeId)
+            if (!this.formData.Id) {
+              this.addEntity()
+            } else {
+              this.updateEntity()
+            }
+          } else {
+            return false
+          }
+        })
+      },
+
+      addEntity () {
+        if (!this.formData.OrganizeId) {
+          this.$message({
+            type: 'error',
+            message: '部门信息缺失,不允许保存!'
+          })
+          return false
+        }
+
+        if (!this.formData.AuditStepCode) {
+          this.$message({
+            type: 'error',
+            message: '步骤信息缺失,不允许保存!'
+          })
+          return false
+        }
+
+        if (!this.formData.RoleId) {
+          this.$message({
+            type: 'error',
+            message: '角色信息缺失,不允许保存!'
+          })
+          return false
+        }
+
+        api.addEntity(this.formData, this.$axios).then(res => {
+          if (res.data.code === 0) {
+            // 保存成功后,初始化数据,变成修改
+            this.formData.Id = res.data.item
+            this.initDatas()
+            this.$message({
+              type: 'success',
+              message: res.data.message
+            })
+          } 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
+            })
+          } else {
+            this.$message({
+              type: 'warning',
+              message: res.data.message
+            })
+          }
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+
+      jstimehandle (val) {
+        if (val === '') {
+          return '----'
+        } else if (val === '0001-01-01T08:00:00+08:00') {
+          return '----'
+        } else if (val === '5000-01-01T23:59:59+08:00') {
+          return '永久'
+        } else {
+          val = val.replace('T', ' ')
+          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
+      }
+    }
+  }
+</script>
+
+<style lang="scss">
+
+</style>
+

+ 370 - 0
src/dashoo.cn/frontend_web/src/pages/system/auditsetting/index.vue

@@ -0,0 +1,370 @@
+<template>
+  <div>
+    <el-breadcrumb class="heading">
+      <el-breadcrumb-item :to="{ path: '/' }">平台首页</el-breadcrumb-item>
+      <el-breadcrumb-item :to="{ path: '/system/auditsetting' }">单位审批步骤自定义配置</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> 自定义配置
+        </span>
+        <span style="float: right;">
+          <router-link :to="'/system/auditsetting/add/operation'">
+            <el-button type="primary" size="mini" style="margin-left:10px; margin-top: -4px;">添加</el-button>
+          </router-link>
+        </span>
+        <el-form ref="form" :inline="true" style="float: right; margin-top: -10px">
+          <!--<el-form-item label="上报时间">
+            <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 label="上级组织" label-width="120px" v-if="false">
+            <el-cascader :options="orgtreelist" :props="orgtreeprops" change-on-select :show-all-levels="false" v-model="selectedorg"
+                         placeholder="请选择组织"></el-cascader>
+          </el-form-item>
+
+          <el-form-item>
+            <el-dropdown split-button type="primary" size="mini" @click="handleSearch" @command="searchCommand">
+              查询
+              <el-dropdown-menu slot="dropdown">
+                <el-dropdown-item command="search">高级查询</el-dropdown-item>
+                <el-dropdown-item command="clear">查询重置</el-dropdown-item>
+              </el-dropdown-menu>
+            </el-dropdown>
+          </el-form-item>
+        </el-form>
+      </div>
+      <el-table :data="entityList" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
+        <el-table-column label="操作" width="160" align="center" fixed>
+          <template slot-scope="scope">
+            <router-link :to="'/system/auditsetting/' + scope.row.Id + '/operation'">
+              <el-button type="primary" title="编辑" size="mini">编辑</el-button>
+            </router-link>
+
+            <el-popover placement="top" title="提示">
+              <el-alert
+                title=""
+                description="确认要删除吗?"
+                trigger="click"
+                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="plain" title="删除" style="margin-left:3px" size="mini">删除</el-button>
+            </el-popover>
+          </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 slot-scope="scope">
+            {{ jstimehandle(scope.row.CreateOn+'') }}
+          </template>
+        </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="单位ID">
+              <el-input size="mini" v-model="searchForm.OrganizeId" 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.OrganizeName" 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.AuditStepCode" 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.AuditStepName" 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.RoleId" 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.RoleName" 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-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>
+  import { mapGetters } from 'vuex'
+  import api from '@/api/system/auditsetting'
+
+  export default {
+    computed: {
+      ...mapGetters({
+        authUser: 'authUser'
+      })
+    },
+    name: 'oilauditsetting',
+
+    data () {
+      return {
+        dialogVisible: false,
+        // 列表数据
+        entityList: [],
+        // 分页参数
+        size: 10,
+        currentPage: 1,
+        currentItemCount: 0,
+        // 列表排序
+        Column: {
+          Order: '',
+          Prop: ''
+        },
+        // 查询时间
+        CreateOn: [new Date(new Date().getTime() - 30 * 24 * 60 * 60 * 1000), new Date()],
+        // 查询项
+        searchFormReset: {},
+        searchForm: {
+          Id: '',
+          OrganizeId: '',
+          OrganizeName: '',
+          AuditStepCode: '',
+          AuditStepName: '',
+          RoleId: '',
+          RoleName: '',
+          Remark: '',
+          IsDelete: '',
+          CreateOn: '',
+          CreateUserId: '',
+          CreateBy: '',
+          ModifiedOn: '',
+          ModifiedUserId: '',
+          ModifiedBy: ''
+        },
+        tableColumns: [
+          {
+            prop: 'OrganizeName',
+            label: '单位名称',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: 'AuditStepCode',
+            label: '审批步骤编码',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: 'AuditStepName',
+            label: '审批步骤名称',
+            width: 100,
+            sort: true
+          },
+          {
+            prop: 'RoleName',
+            label: '角色名称',
+            width: 100,
+            sort: true
+          },
+          {
+            prop: 'WorkFlowName',
+            label: '工作流名称',
+            width: 100,
+            sort: true
+          },
+          {
+            prop: 'Remark',
+            label: '备注',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: 'CreateOn',
+            label: '创建时间',
+            width: 100,
+            sort: true
+          }
+        ]
+      }
+    },
+    created () {
+      // 查询条件初始值备份
+      Object.assign(this.searchFormReset, this.searchForm)
+      // 查询列表
+      this.initDatas()
+      // his.getDictOptions()
+    },
+    methods: {
+      initDatas () {
+        // 分页及列表条件
+        let params = {
+          _currentPage: this.currentPage,
+          _size: this.size,
+          Order: this.Column.Order,
+          Prop: this.Column.Prop
+        }
+        let myCreateOn = []
+        // 解析时间
+        if (this.CreateOn.length === 2) {
+          this.CreateOn[1].setHours(23)
+          this.CreateOn[1].setMinutes(59)
+          this.CreateOn[1].setSeconds(59)
+          myCreateOn.push(this.formatDateTime(this.CreateOn[0]))
+          myCreateOn.push(this.formatDateTime(this.CreateOn[1]))
+        }
+        // 查询条件
+        Object.assign(params, this.searchForm)
+        // 访问接口
+        api.getList(myCreateOn.join(','), params, this.$axios).then(res => {
+          this.entityList = res.data.items
+          this.currentItemCount = res.data.currentItemCount
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+
+      /* getDictOptions () {
+        api.getDictList(this.$axios).then(res => {
+          this.searchForm.OrganizeId = res.data.items['OrganizeId']
+        }).catch(err => {
+          console.error(err)
+        })
+      }, */
+
+      searchCommand (command) {
+        if (command === 'search') {
+          this.dialogVisible = true
+        } else if (command === 'clear') {
+          this.clearSearch()
+        }
+      },
+      // 列表排序功能
+      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.initDatas()
+      },
+      clearSearch () {
+        Object.assign(this.searchForm, this.searchFormReset)
+        // this.searchForm = this.searchFormReset;
+        this.CreateOn = ''
+        this.initDatas()
+      },
+      handleSearch () {
+        this.currentPage = 1
+        this.dialogVisible = false
+        this.initDatas()
+      },
+      handleCurrentChange (value) {
+        this.currentPage = value
+        this.initDatas()
+      },
+      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)
+        })
+      },
+
+      jstimehandle (val) {
+        if (val === '') {
+          return '----'
+        } else if (val === '0001-01-01T08:00:00+08:00') {
+          return '----'
+        } else if (val === '5000-01-01T23:59:59+08:00') {
+          return '永久'
+        } else {
+          val = val.replace('T', ' ')
+          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
+      }
+    }
+  }
+</script>
+
+<style lang="scss">
+  .el-pagination {
+    margin: 1rem 0 2rem;
+    text-align: right;
+  }
+</style>
+