Bladeren bron

评估 签章管理

sangwenwei 1 jaar geleden
bovenliggende
commit
ab7091664f

+ 446 - 0
src/views/cw/signatureDaily/SignatureDailyFormTask.vue

@@ -0,0 +1,446 @@
+<template xmlns:v-slot="http://www.w3.org/1999/XSL/Transform">
+  <div>
+    <el-form :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="status === 'audit' || status === 'taskFormDetail'"
+             label-width="160px" @submit.native.prevent>
+      <el-divider content-position="left"><i class="el-icon-document"></i>
+        基本信息
+      </el-divider>
+      <el-row  :gutter="15">
+
+        <el-col :span="12">
+          <el-form-item label="签章描述" prop="signatureName"
+                        :rules="[{required: true, message:'签章描述不能为空', trigger:'blur'}
+               ]">
+            <el-input  placeholder="请填写签章描述" v-model="inputForm.signatureName" clearable></el-input>
+          </el-form-item>
+        </el-col>
+		  <el-col :span="12">
+			  <el-form-item label="签章编号" prop="number"
+							:rules="[
+               ]">
+				  <el-input :disabled="true" placeholder="请填写签章编号" v-model="inputForm.number" clearable></el-input>
+			  </el-form-item>
+		  </el-col>
+        <el-col :span="12">
+          <el-form-item label="签章类型" prop="signatureType"
+                        :rules="[
+                        {required: true, message:'签章类型不能为空', trigger:'change'}
+               ]">
+			  <el-select v-model="inputForm.signatureType" placeholder="请选择" style="width:100%;" clearable>
+				  <el-option
+					  v-for="item in $dictUtils.getDictList('signature_daily')"
+					  :key="item.value"
+					  :label="item.label"
+					  :value="item.value">
+				  </el-option>
+			  </el-select>
+          </el-form-item>
+        </el-col>
+		  <el-col :span="12">
+			  <el-form-item label="创建人" prop="createName"
+							:rules="[
+               ]">
+				  <el-input :disabled="true" placeholder="请填写创建人" v-model="inputForm.createName" clearable></el-input>
+			  </el-form-item>
+		  </el-col>
+		  <el-col :span="12">
+			  <el-form-item label="所属部门" prop="officeName"
+							:rules="[
+               ]">
+				  <el-input :disabled="true" placeholder="请填写所属部门" v-model="inputForm.officeName" clearable></el-input>
+			  </el-form-item>
+		  </el-col>
+		  <el-col :span="12">
+			  <el-form-item label="创建日期" prop="createTime"
+							:rules="[
+               ]">
+				  <el-input :disabled="true" placeholder="请填写创建日期" v-model="inputForm.createTime" clearable></el-input>
+			  </el-form-item>
+		  </el-col>
+		  <el-col :span="24">
+			  <el-form-item label="备注" prop="remarks"
+							:rules="[
+               ]">
+				  <el-input maxlength="500"  type="textarea" placeholder="请填写备注" v-model="inputForm.remarks" show-word-limit></el-input>
+			  </el-form-item>
+		  </el-col>
+      </el-row>
+
+
+
+    </el-form>
+    <!--        附件-->
+    <UpLoadComponent ref="uploadComponent" @clickSign="clickSign"></UpLoadComponent>
+
+  </div>
+</template>
+
+<script>
+  import SignatureDailyService from '@/api/cw/signatureDaily/SignatureDailyService'
+  import UpLoadComponent from '@/views/common/SignatureUpLoadComponent'
+  import CommonApi from '@/api/cw/common/CommonApi'
+  export default {
+	  props: {
+		  businessId: {
+			  type: String,
+			  default: ''
+		  },
+		  formReadOnly: {
+			  type: Boolean,
+			  default: false
+		  },
+		  status: {
+			  type: String,
+			  default: ''
+		  }
+	  },
+	  data() {
+		  return {
+			  bj1: '',
+			  title: '',
+			  method: '',
+			  visible: false,
+			  loading: false,
+			  dialogFormVisible: false,
+			  inputForm: {
+				  id: '',
+				  signatureName:'',
+				  signatureType:'',
+				  number:'',
+				  createName:'',
+				  officeName:'',
+				  createTime:'',
+				  remarks: '',
+				  name: '',
+				  status: '',
+				  files: [],
+				  procInsId:''
+			  },
+			  keyWatch: '',
+		  }
+	  },
+	  SignatureDailyService: null,
+	  CommonApi: null,
+	  created() {
+		  this.signatureDailyService = new SignatureDailyService()
+		  this.commonApi = new CommonApi()
+	  },
+	  mounted() {
+	  },
+	  components: {
+		  UpLoadComponent,
+
+	  },
+	  computed: {
+		  bus: {
+			  get() {
+				  this.$refs.uploadComponent.setDividerName('附件')
+				  return this.businessId
+			  },
+			  set(val) {
+				  this.businessId = val
+			  },
+		  }
+	  },
+	  watch: {
+		  'keyWatch': {
+			  handler(newVal) {
+				  if (this.commonJS.isNotEmpty(this.bus)) {
+					  this.init('', this.bus)
+				  } else {
+					  this.$nextTick(() => {
+						  this.$refs.inputForm.resetFields()
+					  })
+				  }
+			  }
+		  },
+		  'loading': {
+			  handler(newVal) {
+				  this.$emit('changeLoading', newVal)
+				  this.$refs.uploadComponent.changeLoading(newVal)
+			  }
+		  }
+	  },
+	  methods: {
+		  getKeyWatch(keyWatch) {
+			  this.keyWatch = keyWatch
+		  },
+		  init(method, id) {
+			  this.importVisible = false
+			  this.method = method
+			  this.inputForm = {
+				  id: '',
+				  signatureName:'',
+				  signatureType:'',
+				  number:'',
+				  createName:'',
+				  officeName:'',
+				  createTime:'',
+				  remarks: '',
+				  name: '',
+				  status: '',
+				  files: [],
+				  procInsId:''
+			  }
+			  // if (method === 'add') {
+			  //   this.title = `新建发票`
+			  // } else if (method === 'edit') {
+			  //   this.title = '修改发票'
+			  // } else if (method === 'view') {
+			  //   this.title = '查看发票信息'
+			  // }
+			  this.inputForm.id = id
+			  this.visible = true
+			  this.loading = false
+			  this.$nextTick(() => {
+				  this.$refs.inputForm.resetFields()
+				  this.loading = true
+				  this.signatureDailyService.findById(this.inputForm.id).then((data) => {
+					  this.$refs.uploadComponent.clearUpload()
+					  this.inputForm = this.recover(this.inputForm, data)
+					  this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
+					  if (this.commonJS.isEmpty(this.inputForm.createName)) {
+						  this.inputForm.createName = this.$store.state.user.name
+						  this.inputForm.officeName = this.$store.state.user.office.name
+					  }
+					  if (this.commonJS.isEmpty(this.inputForm.createTime)) {
+						  this.inputForm.createTime = this.moment(new Date()).format("YYYY-MM-DD")
+					  }
+					  if (this.commonJS.isEmpty(this.inputForm.files) || this.inputForm.files.length === 0) {
+						  this.inputForm.files = []
+					  }
+					  if (this.status === 'audit' || this.status === 'taskFormDetail') {
+						  method = 'view'
+					  }
+					  console.log('this.inputForm',this.inputForm)
+					  this.commonApi.getTaskNameByProcInsId(this.inputForm.procInsId).then((da) => {
+						  if (da === '办公室审批'){
+							  if (this.commonJS.isNotEmpty(this.inputForm.files) && this.status === 'audit'){
+								  this.$refs.uploadComponent.newUpload('view', this.inputForm.files, 'signatureDaily', null, null, null, null, false, 'audit')
+								  this.$emit('callBackFunc', 'hide')
+								  this.jobScheduler()
+							  }else {
+								  this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'signatureDaily', null, null, null, null, false, false)
+							  }
+						  }else {
+							  this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'signatureDaily', null, null, null, null, false, false)
+						  }
+					  })
+					  this.loading = false
+				  })
+			  })
+		  },
+		  saveForm(callback) {
+			  this.doSubmit('save', callback)
+		  },
+		  startForm(callback) {
+			  this.loading = true
+			  if (this.commonJS.isNotEmpty(this.inputForm.id)) {
+				  this.signatureDailyService.findById(this.inputForm.id).then((data) => {
+					  if (data.status !== '0' && data.status !== '1' && data.status !== '3') { // 审核状态不是“未发起”或“暂存”或“撤回”,就弹出提示
+						  this.loading = false
+						  this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
+						  throw new Error()
+					  } else {
+						  this.doSubmit('start', callback)
+					  }
+				  })
+			  } else {
+				  this.doSubmit('start', callback)
+			  }
+		  },
+		  async agreeForm(callback) {
+			  console.log('进入方法')
+			  this.loading = true
+			  await  this.signatureDailyService.findById(this.inputForm.id).then((data) => {
+				  if (data.status !== '2') { // status的值不等于“审核中”,就弹出提示
+					  this.loading = false
+					  this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
+					  throw new Error()
+				  } else {
+					  this.doSubmit('agree', callback)
+				  }
+			  })
+		  },
+		  reapplyForm(callback) {
+			  this.loading = true
+			  this.signatureDailyService.findById(this.inputForm.id).then((data) => {
+				  if (data.status !== '4') { // 审核状态不是“驳回”,就弹出提示
+					  this.loading = false
+					  this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
+					  throw new Error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
+				  } else {
+					  this.doSubmit('reapply', callback)
+				  }
+			  })
+		  },
+		  // 表单提交
+		  async doSubmit(status, callback) {
+			  this.loading = true
+			  if (await this.$refs.uploadComponent.checkProgress()) {
+				  this.loading = false
+				  throw new Error()
+			  }
+			  if (status === 'save') {
+				  // 暂存
+				  this.loading = true
+				  this.inputForm.status = '1'
+				  this.inputForm.files = this.$refs.uploadComponent.getDataList()
+				  this.signatureDailyService.saveForm(this.inputForm).then((data) => {
+					  callback(data.businessTable, data.businessId, this.inputForm)
+					  this.loading = false
+				  }).catch(() => {
+					  this.loading = false
+				  })
+				  return
+			  } else if (status === 'start') {
+				  // 送审  待审核
+				  this.inputForm.status = '2'
+			  } else if (status === 'agree') {
+				  this.inputForm.status = '5'
+			  } else if (status === 'reapply') {
+				  this.inputForm.status = '2'
+			  }
+			  this.$refs['inputForm'].validate((valid) => {
+				  if (valid) {
+					  this.loading = true
+					  this.inputForm.files = this.$refs.uploadComponent.getDataList()
+					  if (this.commonJS.isEmpty(this.inputForm.files) || this.inputForm.files.length === 0) {
+						  this.loading = false
+						  this.$message.error('请上传签章附件')
+						  throw new Error()
+					  }
+					  this.signatureDailyService.saveForm(this.inputForm).then((data) => {
+						  if (status === 'start' || status === 'reapply') {
+							  this.inputForm.title = `${this.$store.state.user.name} 发起了 ${data.number} [财务-日常签章]`
+						  }
+						  this.inputForm.id = data.businessId
+						  console.log('data22', data)
+						  callback(data.businessTable, data.businessId, this.inputForm)
+						  this.loading = false
+					  }).catch(() => {
+						  this.loading = false
+					  })
+				  } else {
+					  this.loading = false
+				  }
+			  })
+		  },
+		  close() {
+			  this.$refs.uploadComponent.clearUpload()
+			  this.$refs.inputForm.resetFields()
+			  this.inputForm = {
+				  id: '',
+				  signatureName:'',
+				  signatureType:'',
+				  number:'',
+				  createName:'',
+				  officeName:'',
+				  createTime:'',
+				  remarks: '',
+				  name: '',
+				  status: '',
+				  files: [],
+			  }
+			  this.visible = false
+		  },
+
+		  async updateStatusById(type, callback) {
+			  this.loading = true
+			  if (await this.$refs.uploadComponent.checkProgress()) {
+				  this.loading = false
+				  throw new Error()
+			  } else {
+				  if (type === 'reject' || type === 'reback') {
+					  this.signatureDailyService.findById(this.inputForm.id).then((data) => {
+						  if (data.status !== '2') { // status的值不等于“审核中”,就弹出提示
+							  this.loading = false
+							  this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
+							  throw new Error()
+						  } else {
+							  // if (type === 'agree') {
+							  //   // 同意
+							  //   this.inputForm.status = '5'
+							  // }
+							  if (type === 'reject') {
+								  // 驳回
+								  this.inputForm.status = '4'
+							  }
+							  if (type === 'reback') {
+								  // 撤回
+								  this.inputForm.status = '3'
+							  }
+							  if (type === 'reject' || type === 'reback') {
+								  let param = {status: this.inputForm.status, id: this.inputForm.id}
+								  this.signatureDailyService.updateStatusById(param).then(() => {
+									  this.loading = false
+									  callback()
+								  })
+							  }
+						  }
+					  })
+				  } else if (type === 'hold') {
+					  this.signatureDailyService.findById(this.inputForm.id).then((data) => {
+						  if (data.status !== '4') { // status的值不等于“驳回”就弹出提示
+							  this.loading = false
+							  this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
+							  throw new Error()
+						  } else {
+							  // 终止
+							  let param = {status: '1', id: this.inputForm.id}
+							  this.signatureDailyService.updateStatusById(param).then(() => {
+								  this.loading = false
+								  callback()
+							  })
+						  }
+					  })
+				  }
+			  }
+		  },
+		  clickSign () {
+		  	console.log('2312321')
+			  this.signatureDailyService.saveFlowableParam(this.inputForm).then((data) => {
+				  window.open(data, '_blank')
+			  })
+		  },
+
+		  jobScheduler () {
+			  this.interVal = setInterval(() => {
+				  console.log('正在访问签章状态...')
+				  console.log(this.inputForm)
+				  this.signatureDailyService.getAuditNodeById(this.inputForm.id).then((data) => {
+					  console.log('进来了', data)
+					  if (data.success === true) {
+						  this.signatureDailyService.getSignatureTypeById(this.inputForm.id).then((sign) => {
+						  	console.log('sign',sign)
+							  if (sign.signatureType === 1) {
+								  console.log('sign.signatureType', sign.signatureType)
+								  console.log('签章已完成,展示‘同意’按钮')
+								  this.$emit('callBackFunc', 'show')
+								  this.$refs.uploadComponent.hideSign() // 隐藏签章按钮
+								  clearInterval(this.interVal)
+								  this.showConfirm() // 提示签章操作已完成
+							  }
+						  })
+					  }
+				  })
+			  }, 2000)
+		  },
+		  showConfirm () {
+			  this.$confirm(`签章操作已完成,请进行审核操作`, '提示', {
+				  confirmButtonText: '确定',
+				  type: 'warning'
+			  })
+		  }
+
+    }
+  }
+</script>
+<style scoped>
+  /deep/ .el-input-number .el-input__inner {
+    text-align: left;
+  }
+  /deep/ .vxe-footer--row .vxe-footer--column:nth-child(1) .vxe-cell--item {
+	  font-weight:700;
+  }
+</style>

+ 546 - 0
src/views/cw/signatureDaily/SignatureDailyList.vue

@@ -0,0 +1,546 @@
+<template>
+	<div class="page">
+		<el-form :inline="true" class="query-form m-b-10" v-if="searchVisible" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
+			<!-- 搜索框-->
+			<el-form-item label="签章描述" prop="signatureName">
+				<el-input v-model="searchForm.signatureName" placeholder="请输入签章描述" clearable>
+				</el-input>
+			</el-form-item>
+			<el-form-item label="签章类型" prop="signatureType">
+				<el-select v-model="searchForm.signatureType" placeholder="请选择" style="width:100%;" clearable>
+					<el-option
+						v-for="item in $dictUtils.getDictList('signature_daily')"
+						:key="item.value"
+						:label="item.label"
+						:value="item.value">
+					</el-option>
+				</el-select>
+			</el-form-item>
+			<el-form-item label="创建时间" prop="dates">
+				<el-date-picker
+					style=""
+					placement="bottom-start"
+					value-format="YYYY-MM-DD HH:mm:ss"
+					v-model="searchForm.dates"
+					type="datetimerange"
+					range-separator="至"
+					start-placeholder="开始日期"
+					end-placeholder="结束日期">
+				</el-date-picker>
+			</el-form-item>
+			<el-form-item v-if="showHideItem" label="创建人" prop="createById">
+				<UserSelect :limit='1' :modelValue="searchForm.createById" @update:modelValue='(value, label) => {searchForm.createById = value}'></UserSelect>
+			</el-form-item>
+
+			<el-form-item v-if="showHideItem" label="签章状态" prop="status">
+				<el-select v-model="searchForm.status" placeholder="请选择" style="width:100%;" clearable>
+					<el-option
+						v-for="item in $dictUtils.getDictList('status')"
+						:key="item.value"
+						:label="item.label"
+						:value="item.value">
+					</el-option>
+				</el-select>
+			</el-form-item>
+			<el-form-item v-if="showHideItem" label="部门" prop="officeId">
+				<SelectTree
+					ref="officeTree"
+					:props="{
+                value: 'id',             // ID字段名
+                label: 'name',         // 显示名称
+                children: 'children'    // 子级字段名
+              }"
+					:url="`/system-server/sys/office/treeData?type=2`"
+					:value="searchForm.officeId"
+					:clearable="true"
+					:accordion="true"
+					size="default"
+					@getValue="(value,label) => {searchForm.officeId=label}"/>
+			</el-form-item>
+
+
+			<el-form-item>
+				<el-button type="default" @click="showHide" :icon="showHideIcon">{{showHideName}}</el-button>
+				<el-button type="primary" @click="refreshList()" icon="el-icon-search">查询</el-button>
+				<el-button @click="resetSearch()" icon="el-icon-refresh-right">重置</el-button>
+			</el-form-item>
+		</el-form>
+
+		<div class="jp-table top" style="">
+			<vxe-toolbar :refresh="{query: refreshList}" ref="toolbarRef" export custom>
+				<template #buttons>
+					<el-button v-if="hasPermission('signature:daily:add')" type="primary" icon="el-icon-plus" @click="add()">新建</el-button>
+<!--					<el-button v-if="hasPermission('cw:reimbursement:info:del')" type="danger"  icon="el-icon-delete" @click="del()" :disabled="$refs.infoTable && $refs.infoTable.getCheckboxRecords().length === 0" plain>删除</el-button>-->
+				</template>
+				<template #tools>
+					<vxe-button
+						text
+						type="primary"
+						:title="searchVisible ? '收起检索' : '展开检索'"
+						icon="vxe-icon-search"
+						class="tool-btn"
+						@click="searchVisible = !searchVisible"
+					></vxe-button>
+				</template>
+			</vxe-toolbar>
+			<div style="height: calc(100% - 80px)">
+				<vxe-table
+					border="inner"
+					auto-resize
+					resizable
+					height="auto"
+					:loading="loading"
+					ref="infoTable"
+					show-header-overflow
+					show-overflow
+					highlight-hover-row
+					:menu-config="{}"
+					:sort-config="{remote:true}"
+					:export-config="{
+                    remote: true,
+                    filename: `日常签章数据${moment(new Date()).format('YYYY-MM-DD')}`,
+                    sheetName: `日常签章数据${moment(new Date()).format('YYYY-MM-DD')}`,
+                    exportMethod: exportMethod,
+                    types: ['xlsx'],
+                    modes: ['current', 'selected', 'all']
+                  }"
+					:data="dataList"
+					:checkbox-config="{}">
+					<vxe-column type="seq" width="60" title="序号"></vxe-column>
+<!--					<vxe-column type="checkbox" width="60" ></vxe-column>-->
+					<vxe-column min-width="130" title="签章编号" field="number" align="center">
+						<template #default="scope">
+							<el-link  type="primary" :underline="false" v-if="hasPermission('cw:reimbursement:info:view')" @click="view(scope.row.id)">{{scope.row.number}}</el-link>
+						</template>
+					</vxe-column>
+					<vxe-column width="130" title="签章描述" field="signatureName" align="center"></vxe-column>
+					<vxe-column min-width="130" title="签章类型" field="signatureType" align="center">
+						<template #default="scope">
+							{{$dictUtils.getDictLabel('signature_daily', scope.row.signatureType, '')}}
+						</template>
+					</vxe-column>
+					<vxe-column min-width="100" title="签章人" field="createName" align="center"></vxe-column>
+					<vxe-column min-width="100" title="创建日期" field="createTime" align="center"></vxe-column>
+					<vxe-column min-width="100" title="状态" fixed="right" align="center" field="status">
+						<template #default="scope">
+							<el-button @click="detail(scope.row)" :type="$dictUtils.getDictLabel('status_info', scope.row.status, '')" effect="dark" >{{$dictUtils.getDictLabel("status", scope.row.status, '未开始')}} </el-button>
+						</template>
+					</vxe-column>
+
+					<vxe-column title="操作" min-width="130px" fixed="right" align="center">
+						<template  #default="scope">
+							<div v-if="isAdmin">
+								<el-button v-if=" (scope.row.status === '5' )" text type="primary" @click="editForm(scope.row)">修改</el-button>
+								<el-button v-if=" (scope.row.status === '5')" text type="primary"  @click="del(scope.row.id)">删除</el-button>
+							</div>
+							<div v-else>
+								<el-button v-if="hasPermission('signature:daily:edit') && scope.row.createById === $store.state.user.id && (scope.row.status === '1' || scope.row.status === '3' )" text type="primary"   @click="edit(scope.row)">修改</el-button>
+								<el-button v-if="hasPermission('signature:daily:edit') && scope.row.createById === $store.state.user.id && (scope.row.status === '2')" text type="primary"  @click="reback(scope.row)">撤回</el-button>
+								<el-button v-if="hasPermission('signature:daily:del') && scope.row.createById === $store.state.user.id && (scope.row.status === '1')" text type="primary"  @click="del(scope.row.id)">删除</el-button>
+								<!--              审核-->
+								<el-button v-if="scope.row.status==='2' && checkIsAudit(scope.row)" text type="primary"  @click="examine(scope.row)">审核</el-button>
+								<!--              被驳回后当前申请人重新调整-->
+								<el-button v-if="scope.row.createById === $store.state.user.id&&scope.row.status === '4'" text type="primary"  @click="adjust(scope.row)">驳回调整</el-button>
+							</div>
+						</template>
+					</vxe-column>
+				</vxe-table>
+				<vxe-pager
+					background
+					:current-page="tablePage.currentPage"
+					:page-size="tablePage.pageSize"
+					:total="tablePage.total"
+					:page-sizes="[10, 20, 100, 1000, {label: '全量数据', value: 1000000}]"
+					:layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"
+					@page-change="currentChangeHandle">
+				</vxe-pager>
+
+				<SignatureDailyDia ref="signatureDailyDia" @refreshDataList="refreshList"></SignatureDailyDia>
+			</div>
+		</div>
+	</div>
+</template>
+
+<script>
+	import SignatureDailyService from '@/api/cw/signatureDaily/SignatureDailyService'
+	import UserSelect from '@/components/userSelect'
+	import SelectTree from '@/components/treeSelect/treeSelect.vue'
+	import SignatureDailyDia from "./SignatureDailyDia";
+	import taskService from '@/api/flowable/TaskService'
+	import processService from '@/api/flowable/ProcessService'
+	import pick from 'lodash.pick'
+
+	import userService from '@/api/sys/UserService'
+
+	export default {
+		data () {
+			return {
+				searchVisible: true,
+				showHideItem: false,
+				showHideIcon: 'el-icon-arrow-down',
+				showHideName: '展示',
+				num: 0,
+				visable: false,
+				gridData: [],
+				searchForm: {
+					signatureName:'',
+					signatureType:'',
+					createById:'',
+					officeId:'',
+					datas:[],
+					status:''
+				},
+				dataList: [],
+				tablePage: {
+					total: 0,
+					currentPage: 1,
+					pageSize: 10,
+					orders: []
+				},
+				loading: false,
+				isAdmin: false,
+				processDefinitionId:'',
+				procDefKey:''
+			}
+		},
+		SignatureDailyService: null,
+		created () {
+			this.signatureDailyService = new SignatureDailyService()
+		},
+		components: {
+			SelectTree,
+			UserSelect,
+			SignatureDailyDia
+		},
+		mounted () {
+			this.$nextTick(() => {
+				//将表格和工具栏进行关联
+				const $table = this.$refs.infoTable;
+				const $toolbar = this.$refs.toolbarRef;
+				$table.connect($toolbar);
+			})
+			this.refreshList()
+		},
+		activated () {
+			this.refreshList()
+		},
+		computed: {
+			userName () {
+				return this.$store.state.user.name
+			},
+			user () {
+				this.create = this.$store.state.user.id
+				console.log('createId', this.$store.state.user)
+				return this.$store.state.user
+			}
+		},
+		methods: {
+			showHide () {
+				if (this.showHideItem === false) {
+					this.showHideItem = true
+					this.showHideIcon = 'el-icon-arrow-up'
+					this.showHideName = '隐藏'
+				} else {
+					this.showHideItem = false
+					this.showHideIcon = 'el-icon-arrow-down'
+					this.showHideName = '展示'
+				}
+			},
+			// 查询当前用户是否是管理员用户
+			checkIsAdmin () {
+				userService.is().then((data) => {
+					this.isAdmin = data
+				})
+			},
+
+			viewContract (id) {
+				this.$refs.contractNameForm.init('view', id)
+			},
+			// 新增
+			add () {
+				// 读取流程表单
+				let tabTitle = `发起流程【会计-日常签章】`
+				let processTitle = `${this.userName} 在 ${this.moment(new Date()).format('YYYY-MM-DD HH:mm')} 发起了 [会计-日常签章]`
+				taskService.getTaskDef({ procDefId: this.processDefinitionId,
+					status: 'startAndHold'}).then((data) => {
+					this.$router.push({
+						path: '/flowable/task/TaskForm',
+						query: {
+							...pick(data, 'formType', 'formUrl', 'procDefKey', 'taskDefKey', 'procInsId', 'procDefId', 'taskId', 'status', 'title'),
+							procDefId: this.processDefinitionId,
+							procDefKey: this.procDefKey,
+							status: 'startAndHold',
+							title: tabTitle,
+							formType: data.formType,
+							formUrl: data.formUrl,
+							formTitle: processTitle,
+							businessId: 'false',
+							isShow: false,
+							routePath: '/cw/signatureDaily/SignatureDailyList'
+						}
+					})
+				})
+
+			},
+			// 修改
+			edit (row) {
+				// 暂存修改
+				let status = ''
+				if (row.status === '1') {
+					status = 'startAndHold'
+				}
+				// 撤回或者驳回修改
+				if (row.status === '3') {
+					status = 'startAndClose'
+				} else if (row.status === '4') {
+					status = 'reapplyFlag'
+				}
+				// 读取流程表单
+				let tabTitle = `发起流程【会计-日常签章】`
+				let processTitle = `${this.userName} 在 ${this.moment(new Date()).format('YYYY-MM-DD HH:mm')} 发起了 [会计-日常签章]`
+				taskService.getTaskDef({ procDefId: this.processDefinitionId,
+					businessId: row.id,
+					businessTable: 'cw_signature_daily_office_work',
+					status: status
+				}).then((data) => {
+					this.$router.push({
+						path: '/flowable/task/TaskForm',
+						query: {
+							...pick(data, 'formType', 'formUrl', 'procDefKey', 'taskDefKey', 'procInsId', 'procDefId', 'taskId', 'status', 'title'),
+							procDefId: this.processDefinitionId,
+							procDefKey: this.procDefKey,
+							status: status,
+							title: tabTitle,
+							formType: data.formType,
+							formUrl: data.formUrl,
+							formTitle: processTitle,
+							businessTable: 'cw_signature_daily_office_work',
+							businessId: row.id,
+							isShow: false,
+							routePath: '/cw/signatureDaily/SignatureDailyList'
+						}
+					})
+				})
+			},
+			// 撤回
+			reback (row) {
+				this.$confirm(`确定撤回流程吗?`, '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(() => {
+					processService.revokeProcIns(row.procInsId).then((data) => {
+						let param = {status: '3', id: row.id}
+						this.signatureDailyService.updateStatusById(param)
+						this.$message.success('回退成功')
+						this.refreshList()
+					})
+				})
+			},
+			// 查看
+			view (id) {
+				this.$refs.signatureDailyDia.init('view', id)
+			},
+			editForm (row) {
+				this.$refs.signatureDailyDia.init('edit', row.id)
+			},
+			// 查看报销项目
+			viewProject (id) {
+				this.$refs.projectListForm.init(id)
+			},
+			// 获取数据列表
+			refreshList () {
+				this.loading = true
+				this.signatureDailyService.list({
+					'current': this.tablePage.currentPage,
+					'size': this.tablePage.pageSize,
+					'orders': this.tablePage.orders,
+					...this.searchForm
+				}).then((data) => {
+					this.dataList = data.records
+					this.tablePage.total = data.total
+					this.loading = false
+				})
+				this.checkIsAdmin()
+				processService.getByName('财务-日常办公签章').then((data) => {
+					if (!this.commonJS.isEmpty(data.id)) {
+						this.processDefinitionId = data.id
+						this.procDefKey = data.key
+					}
+				})
+
+
+			},
+			// 删除
+			del (id) {
+				let ids = id || this.$refs.infoTable.getCheckboxRecords().map(item => {
+					return item.id
+				}).join(',')
+				this.$confirm(`确定删除所选项吗?`, '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'warning'
+				}).then(() => {
+					this.loading = true
+					this.signatureDailyService.remove(ids).then((data) => {
+						this.$message.success(data)
+						this.refreshList()
+						this.loading = false
+					})
+				})
+			},
+			resetSearch () {
+				this.$refs.searchForm.resetFields()
+				this.refreshList()
+			},
+			// 流程详情
+			detail (row) {
+				taskService.getTaskDef({
+					procInsId: row.procInsId,
+					procDefId: this.processDefinitionId
+				}).then((data) => {
+					this.$router.push({
+						path: '/flowable/task/TaskFormDetail',
+						query: {
+							...pick(data, 'formType', 'formUrl', 'procDefKey', 'taskDefKey', 'procInsId', 'procDefId', 'taskId', 'status', 'title'),
+							isShow: 'false',
+							readOnly: true,
+							title: '流程详情',
+							formTitle: '流程详情',
+							businessId: row.id,
+							status: 'reback'
+						}
+					})
+				})
+
+			},
+			openProgramPageForm (rowIndex) {
+				// 打开单选组件
+				this.$refs.projectChooseForm.init(null, false)
+			},
+
+			// 下载文档
+			exportFile () {
+				this.loading = true
+				this.reimbursementApprovalService.exportFile({
+					'itemType': '1',
+					...this.searchForm
+				}).then((res) => {
+					// 将二进制流文件写入excel表,以下为重要步骤
+					this.$utils.downloadExcel(res, '会计-报销审批列表信息')
+					this.loading = false
+				}).catch(function (err) {
+					this.loading = false
+					if (err.response) {
+						console.log(err.response)
+					}
+				})
+			},
+			// 下载文档
+			exportInvoiceReimbursementFile () {
+				this.loading = true
+				this.reimbursementApprovalService.exportInvoiceReimbursementFile({
+					'itemType': '1',
+					...this.searchForm
+				}).then((res) => {
+					// 将二进制流文件写入excel表,以下为重要步骤
+					this.$utils.downloadExcel(res, '会计-报销数电发票报销列表')
+					this.loading = false
+				}).catch(function (err) {
+					this.loading = false
+					if (err.response) {
+						console.log(err.response)
+					}
+				})
+			},
+			// 当前页
+			currentChangeHandle ({ currentPage, pageSize }) {
+				this.tablePage.currentPage = currentPage
+				this.tablePage.pageSize = pageSize
+				this.refreshList()
+			},
+			// 自定义服务端导出
+			exportMethod ({ options }) {
+				// 传给服务端的参数
+				const params = {
+					'current': this.tablePage.currentPage,
+					'size': this.tablePage.pageSize,
+					'orders': this.tablePage.orders,
+					...this.searchForm,
+					filename: options.filename,
+					sheetName: options.sheetName,
+					isHeader: options.isHeader,
+					original: options.original,
+					mode: options.mode,
+					selectIds: options.mode === 'selected' ? options.map(item => item.id) : [],
+					exportFields: options.columns.map(column => column.property)
+				}
+				return this.reimbursementApprovalService.exportFile(params).then((res) => {
+					// 将二进制流文件写入excel表,以下为重要步骤
+					this.$utils.downloadExcel(res, options.filename)
+				}).catch(function (err) {
+					if (err.response) {
+						console.log(err.response)
+					}
+				})
+			},
+			// 驳回后调整
+			adjust (row) {
+				console.log('row', row)
+				this.signatureDailyService.findById(row.id).then((data) => {
+					console.log('data', data)
+					if (data.status !== '4') { // status的值不等于“驳回”,就弹出提示
+						this.$message.error('数据已发生改变或不存在,请刷新数据')
+						this.refreshList()
+					} else {
+						this.todo(row)
+					}
+				})
+			},
+			// 审核
+			examine (row) {
+				this.signatureDailyService.findById(row.id).then((data) => {
+					if (data.status !== '2') { // status的值不等于“审核中”,就弹出提示
+						this.$message.error('数据已发生改变或不存在,请刷新数据')
+						this.refreshList()
+					} else {
+						this.todo(row)
+					}
+				})
+			},
+			// 审核或重新调整跳转
+			todo (row) {
+				console.log('row.taskId', row.taskId)
+				let cUser = false
+				taskService.getTaskDefInfo({
+					taskId: row.taskId
+				}).then((data) => {
+					this.$router.push({
+						path: '/flowable/task/TaskForm',
+						query: {
+							...pick(data, 'formType', 'formUrl', 'procDefKey', 'taskDefKey', 'procInsId', 'procDefId', 'taskId', 'status', 'title', 'businessId'),
+							isShow: false,
+							formReadOnly: true,
+							formTitle: `${data.taskName}`,
+							cUser: cUser,
+							title: `审批【${data.taskName || ''}】`,
+							routePath: '/cw/signatureDaily/SignatureDailyList'   // 数据处理后需要跳转的页面路径
+						}
+					})
+				})
+			},
+			// 查询当前登录人是否是数据的审核人
+			checkIsAudit (row) {
+				let loginUserId = this.$store.state.user.id  // 获取当前登录用户id
+				if (this.commonJS.isNotEmpty(row.auditUserIds)) {
+					for (const userId of row.auditUserIds) {
+						if (userId === loginUserId) {  // 当数据的审核人中包含当前登录人id时,返回true
+							return true
+						}
+					}
+				}
+				return false
+			}
+		}
+	}
+</script>