sangwenwei hai 1 ano
pai
achega
e66f31e0f7
Modificáronse 57 ficheiros con 2083 adicións e 294 borrados
  1. 10 1
      src/api/jy/DimissionService.js
  2. 8 0
      src/api/jy/DriveInfoService.js
  3. 25 0
      src/api/jy/EntryService.js
  4. 7 6
      src/views/dashboard/widgets/components/MyFlowCopyList.vue
  5. 9 8
      src/views/dashboard/widgets/components/MyNotifyList.vue
  6. 3 0
      src/views/jy/borrowMoney/BorrowDia.vue
  7. 13 13
      src/views/jy/borrowMoney/BorrowMoneyList.vue
  8. 7 1
      src/views/jy/borrowMoney/RefundForm.vue
  9. 457 0
      src/views/jy/daily/MeetingForm.vue
  10. 23 0
      src/views/jy/daily/MeetingRoomForm.vue
  11. 17 11
      src/views/jy/daily/MeetingRoomList.vue
  12. 2 2
      src/views/jy/drive/DriveAccountForm.vue
  13. 16 17
      src/views/jy/drive/DriveList.vue
  14. 3 2
      src/views/jy/drive/ProjectForm.vue
  15. 14 1
      src/views/jy/driveInfo/DriveInfoAddForm.vue
  16. 2 2
      src/views/jy/driveInfo/DriveInfoDia.vue
  17. 2 2
      src/views/jy/driveInfo/DriveInfoList.vue
  18. 9 9
      src/views/jy/driveMaintain/DriveMaintain.vue
  19. 1 1
      src/views/jy/driveMaintain/DriveMaintainAddForm.vue
  20. 4 1
      src/views/jy/evection/EvectionForm.vue
  21. 9 9
      src/views/jy/evection/EvectionList.vue
  22. 16 16
      src/views/jy/finance/InvoiceList.vue
  23. 6 3
      src/views/jy/goOut/GoOutForm.vue
  24. 9 9
      src/views/jy/goOut/GoOutList.vue
  25. 10 10
      src/views/jy/holiday/HolidayList.vue
  26. 396 0
      src/views/jy/humanResources/DimissionDia.vue
  27. 66 15
      src/views/jy/humanResources/DimissionList.vue
  28. 21 14
      src/views/jy/humanResources/EntryDia.vue
  29. 18 13
      src/views/jy/humanResources/EntryForm.vue
  30. 105 8
      src/views/jy/humanResources/EntryList.vue
  31. 2 2
      src/views/jy/humanResources/HeirForm.vue
  32. 18 4
      src/views/jy/inscription/InscriptionForm.vue
  33. 10 10
      src/views/jy/inscription/InscriptionList.vue
  34. 7 7
      src/views/jy/monthly/MonthlyList.vue
  35. 4 3
      src/views/jy/notify/MyNotifyList.vue
  36. 1 1
      src/views/jy/notify/NotifyForm.vue
  37. 10 2
      src/views/jy/notify/NotifyList.vue
  38. 2 2
      src/views/jy/payment/PaymentForm.vue
  39. 10 10
      src/views/jy/payment/PaymentList.vue
  40. 7 2
      src/views/jy/project/OutInstanceForm.vue
  41. 7 2
      src/views/jy/project/ProjectArchiveForm.vue
  42. 29 14
      src/views/jy/project/ProjectAuditForm.vue
  43. 7 4
      src/views/jy/project/ProjectDia.vue
  44. 7 2
      src/views/jy/project/ProjectEiaForm.vue
  45. 13 6
      src/views/jy/project/ProjectForm.vue
  46. 3 3
      src/views/jy/project/ProjectList.vue
  47. 2 1
      src/views/jy/project/ProjectMemberList.vue
  48. 1 1
      src/views/jy/reimbursement/ReimbursementForm.vue
  49. 4 4
      src/views/jy/reimbursement/ReimbursementList.vue
  50. 7 7
      src/views/jy/workClientInfo/WorkClientChooseForm.vue
  51. 5 4
      src/views/jy/workClientInfo/WorkClientChooseRadio.vue
  52. 22 10
      src/views/jy/workClientInfo/WorkClientForm.vue
  53. 9 5
      src/views/jy/workContractInfo/JyWorkContractList.vue
  54. 5 0
      src/views/jy/workContractInfo/WorkContractForm.vue
  55. 15 4
      src/views/materialManagement/userSeal/SignetAddForm.vue
  56. 568 0
      src/views/materialManagement/userSeal/SignetForm.vue
  57. 20 10
      src/views/materialManagement/userSeal/SignetList.vue

+ 10 - 1
src/api/jy/DimissionService.js

@@ -1,7 +1,7 @@
 import request from '@/utils/httpRequest'
 import { BUSINESS_PATH as prefix } from "../AppPath";
 
-export default class EntryService{
+export default class DimissionService{
 	list (param) {
 		return request({
 			url: prefix +'/employeeDimission/findPageList',
@@ -75,5 +75,14 @@ export default class EntryService{
 		})
 	}
 
+	exportExcel (params) {
+		return request({
+			url: prefix + "/employeeDimission/export",
+			method: "get",
+			params: params,
+			responseType: "blob",
+		});
+	}
+
 
 }

+ 8 - 0
src/api/jy/DriveInfoService.js

@@ -43,6 +43,14 @@ export default class DriveInfoService{
 		});
 	}
 
+	checkNumber(number){
+		return request({
+			url: prefix +'/driveInfo/checkNumber',
+			method: 'get',
+			params: {number: number}
+		})
+	}
+
 
 
 }

+ 25 - 0
src/api/jy/EntryService.js

@@ -50,5 +50,30 @@ export default class EntryService{
 		})
 	}
 
+	exportTemplate() {
+		return request({
+			url: prefix + "/employeeEntry/import/template",
+			method: "get",
+			responseType: "blob"
+		});
+	}
+
+	exportExcel (params) {
+		return request({
+			url: prefix + "/employeeEntry/export",
+			method: "get",
+			params: params,
+			responseType: "blob",
+		});
+	}
+
+	importExcel(data) {
+		return request({
+			url: prefix + "/employeeEntry/import",
+			method: "post",
+			data: data,
+		});
+	}
+
 
 }

+ 7 - 6
src/views/dashboard/widgets/components/MyFlowCopyList.vue

@@ -7,29 +7,30 @@
 				</span>
 				<div style="float:right;">
 					<el-button type="text" @click="refreshList()">刷新</el-button>
-					<el-button type="text" @click="toPendingList()">查看更多</el-button>
+					<el-button type="text" @click="toPendingList()">更多>></el-button>
 				</div>
 			</div>
 		</template>
-		<el-table :data="dataList" style="width: 100%" height="480">
+		<el-table :data="dataList" style="width: 100%" height="480" border="inner" :menu-config="{}" @sort-change="sortChangeHandle"
+				  :sort-config="{remote:true}"  resizable>
 			<el-table-column
-				width="200px"
+				min-width="200px"
 				label="实例标题"
 				prop="procInsName"
 			></el-table-column>
 			<el-table-column
-				width="200px"
+				min-width="200px"
 				label="抄送日期"
 				prop="createTime"
 			></el-table-column>
 			<el-table-column
-				width="200px"
+				min-width="200px"
 				label="抄送发起人"
 				prop="createBy.name"
 			></el-table-column>
 			<el-table-column
 				label="操作"
-				width="200px"
+				min-width="200px"
 				fixed="right"
 				align="center"
 			>

+ 9 - 8
src/views/dashboard/widgets/components/MyNotifyList.vue

@@ -7,15 +7,16 @@
 				</span>
 				<div style="float:right;">
 					<el-button type="text" @click="refreshList()">刷新</el-button>
-					<el-button type="text" @click="toPendingList()">查看更多</el-button>
+					<el-button type="text" @click="toPendingList()">更多>></el-button>
 				</div>
 			</div>
 		</template>
-		<el-table :data="dataList" style="width: 100%" height="480">
-			<el-table-column label="标题" prop="title" width="100px">
+		<el-table :data="dataList" style="width: 100%" height="480" border="inner" :menu-config="{}" @sort-change="sortChangeHandle"
+				  :sort-config="{remote:true}"  resizable>
+			<el-table-column label="标题" prop="title" width="200px" show-overflow-tooltip>
 				<template #default="scope">
 					<el-link
-						width="200px"
+						min-width="200px"
 						type="primary"
 						:underline="false"
 						@click="view(scope.row.id)"
@@ -23,7 +24,7 @@
 					>
 				</template>
 			</el-table-column>
-			<el-table-column label="类型" prop="type" width="100px">
+			<el-table-column label="类型" prop="type" min-width="200px">
 				<template #default="scope">
 					{{
 						$dictUtils.getDictLabel(
@@ -63,7 +64,7 @@
 <!--				</template>-->
 <!--			</el-table-column>-->
 
-			<el-table-column label="查阅状态" width="100px" prop="status">
+			<el-table-column label="查阅状态" min-width="200px" prop="status">
 				<template #default="scope">
 					<el-tag type="success"  v-if="scope.row.readFlag === '1'">
 						{{
@@ -86,13 +87,13 @@
 				</template>
 			</el-table-column>
 			<el-table-column
-				width="200px"
+				min-width="200px"
 				label="发布者"
 				prop="createBy.name"
 			></el-table-column>
 			<el-table-column
 				label="操作"
-				width="200px"
+				min-width="200px"
 				fixed="right"
 				align="center"
 			>

+ 3 - 0
src/views/jy/borrowMoney/BorrowDia.vue

@@ -211,6 +211,9 @@
 							if (this.commonJS.isEmpty(this.inputForm.createTime)){
 								this.inputForm.createTime=this.moment(new Date()).format('YYYY-MM-DD')
 							}
+							if (this.commonJS.isNotEmpty(this.inputForm.refundLower)){
+								this.convert(this.inputForm.refundLower)
+							}
 							this.inputForm.endMoney=data.finalMoney
 						})
 						this.loading = false

+ 13 - 13
src/views/jy/borrowMoney/BorrowMoneyList.vue

@@ -122,24 +122,24 @@
 					</vxe-column>
 					<vxe-column title="操作" width="150px" fixed="right" align="center">
 						<template  #default="scope">
-							<div v-if="isAdmin">
-								<el-button  size="small" text type="primary"  @click="adminEdit(scope.row)">修改</el-button>
-								<el-button text type="primary" size="small" v-if="scope.row.status==='0' || scope.row.status==='5'" @click="del(scope.row.id)">删除</el-button>
+							<div >
+								<el-button  size="small" text type="primary" v-if="hasPermission('admin:edit')"  @click="adminEdit(scope.row)">修改</el-button>
+								<el-button text type="primary" size="small" v-if="hasPermission('admin:del')" @click="del(scope.row.id)">删除</el-button>
 							</div>
-							<div v-else>
-								<el-button v-if="(scope.row.status === '0'||scope.row.status === '1'|| scope.row.status === '3')" size="small" text type="primary"  @click="edit(scope.row)">修改</el-button>
-								<el-button text type="primary" size="small" v-if="scope.row.status==='0' || scope.row.status==='1'|| scope.row.status==='3'" @click="del(scope.row.id)">删除</el-button>
+							<div>
+								<el-button v-if="hasPermission('borrow:edit')&&(scope.row.status === '0'||scope.row.status === '1'|| scope.row.status === '3')" size="small" text type="primary"  @click="edit(scope.row)">修改</el-button>
+								<el-button text type="primary" size="small" v-if="hasPermission('borrow:edit')&&(scope.row.status==='0' || scope.row.status==='1'|| scope.row.status==='3')" @click="del(scope.row.id)">删除</el-button>
 								<!--              当前申请人撤回-->
-								<el-button v-if="scope.row.createById === $store.state.user.id && scope.row.status==='2'" text type="primary" size="small" @click="reback(scope.row)">撤回</el-button>
+								<el-button v-if="hasPermission('borrow:edit')&&scope.row.createById === $store.state.user.id && scope.row.status==='2'" text type="primary" size="small" @click="reback(scope.row)">撤回</el-button>
 
-								<el-button v-if="scope.row.status==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examine(scope.row)">审核</el-button>
-								<el-button v-if="scope.row.status === '4'&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="adjust(scope.row)">驳回调整</el-button>
-								<el-button v-if="scope.row.status === '5'&&scope.row.createById === $store.state.user.id &&(commonJS.isEmpty(scope.row.refundStatus) ||scope.row.refundStatus === '0' || scope.row.refundStatus === '1' || scope.row.refundStatus === '5' || scope.row.refundStatus=== '3')" text type="primary" size="small" @click="addRefund(scope.row)">还款申请</el-button>
-								<el-button v-if="scope.row.createById === $store.state.user.id && scope.row.refundStatus==='2'" text type="primary" size="small" @click="rebackAccount(scope.row)">还款撤回</el-button>
+								<el-button v-if="hasPermission('borrow:edit')&&scope.row.status==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examine(scope.row)">审核</el-button>
+								<el-button v-if="hasPermission('borrow:edit')&&scope.row.status === '4'&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="adjust(scope.row)">驳回调整</el-button>
+								<el-button v-if="hasPermission('borrow:edit')&&scope.row.status === '5'&&scope.row.createById === $store.state.user.id &&(commonJS.isEmpty(scope.row.refundStatus) ||scope.row.refundStatus === '0' || scope.row.refundStatus === '1' || scope.row.refundStatus === '5' || scope.row.refundStatus=== '3')" text type="primary" size="small" @click="addRefund(scope.row)">还款申请</el-button>
+								<el-button v-if="hasPermission('borrow:edit')&&scope.row.createById === $store.state.user.id && scope.row.refundStatus==='2'" text type="primary" size="small" @click="rebackAccount(scope.row)">还款撤回</el-button>
 <!--								<el-button v-if="scope.row.createById === $store.state.user.id && scope.row.refundStatus==='3'" text type="primary" size="small" @click="rebackRequest(scope.row)">取消还款</el-button>-->
 
-								<el-button v-if="scope.row.refundStatus==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examineAccount(scope.row)">还款审核</el-button>
-								<el-button v-if="scope.row.refundStatus === '4'&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="adjustAccount(scope.row)">还款驳回调整</el-button>
+								<el-button v-if="hasPermission('borrow:edit')&&scope.row.refundStatus==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examineAccount(scope.row)">还款审核</el-button>
+								<el-button v-if="hasPermission('borrow:edit')&&scope.row.refundStatus === '4'&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="adjustAccount(scope.row)">还款驳回调整</el-button>
 							</div>
 						</template>
 					</vxe-column>

+ 7 - 1
src/views/jy/borrowMoney/RefundForm.vue

@@ -176,6 +176,7 @@
 								this.inputForm.createTime=this.moment(new Date()).format('YYYY-MM-DD')
 							}
 							this.inputForm.endMoney=data.finalMoney
+							console.log('this.inputForm',this.inputForm)
 						})
 						this.loading = false
 					}
@@ -350,7 +351,11 @@
 
 			},
 			convert(money){
-				if (!money) { return this.inputForm.refund='';}
+				if (!money) {
+					if (this.commonJS.isEmpty(money)){
+						this.inputForm.finalMoney=this.inputForm.endMoney
+					}
+					return this.inputForm.refund='';}
 				//数字的汉字数组
 				let numberCNList = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
 				//数字的基础单位汉字数组
@@ -437,6 +442,7 @@
 					this.inputForm.refundLower=''
 					this.inputForm.finalMoney=this.inputForm.endMoney
 				}
+
 			}
 
 

+ 457 - 0
src/views/jy/daily/MeetingForm.vue

@@ -0,0 +1,457 @@
+<template xmlns:v-slot="http://www.w3.org/1999/XSL/Transform">
+	<div>
+		<el-dialog
+			:title="title"
+			:close-on-click-modal="false"
+			draggable
+			width="1300px"
+			@close="close"
+			@keyup.enter.native=""
+			v-model="visible">
+		<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="title"
+								  :rules="[ {required: true, message:'标题不能为空', trigger:'blur'}]">
+						<el-input v-model="inputForm.title" class="m-2" placeholder="请输入会议标题" clearable></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="会议开始时间" prop="startDate"
+								  :rules="[
+								  {required: true, message:'会议开始日期不能为空', trigger:'blur'}]">
+						<el-date-picker
+							style="width:50%;"
+							v-model="inputForm.startDate"
+							type="date"
+							value-format="YYYY-MM-DD"
+							placeholder="请选择日期"
+							:disabled-date="disableDate"
+							:size="default"
+							:clearable="true"
+							@change="checkTime"
+						/>
+						<el-select v-model="inputForm.startTime" placeholder="请选择时间" style="width:50%;" clearable>
+							<el-option
+								v-for="item in dateList"
+								:disabled="item.disabled"
+								: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="duration"
+								  :rules="[
+							 {required: true, message:'会议时长不能为空', trigger:'change'}
+							]">
+						<el-select style="width:100%;" v-model="inputForm.duration" class="m-2" placeholder="请选择" clearable>
+							<el-option   label="30分钟" value="30"></el-option>
+							<el-option   label="1小时" value="1"></el-option>
+							<el-option   label="2小时" value="2"></el-option>
+							<el-option   label="3小时" value="3"></el-option>
+						</el-select>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="会议发起人" prop="createByName"
+								  :rules="[]">
+						<el-input :disabled="true" v-model="inputForm.createByName"></el-input>
+					</el-form-item>
+				</el-col>
+
+				<el-col :span="24">
+					<el-form-item label="会议说明" prop="remarks"
+								  :rules="[ ]">
+						<el-input :disabled="status === 'audit' || status === 'taskFormDetail' || method === 'view'" type="textarea" placeholder="请输入说明"  maxlength="500"  style="width:100%" v-model="inputForm.remarks" show-word-limit></el-input>
+					</el-form-item>
+				</el-col>
+
+			</el-row>
+		</el-form>
+			<template #footer>
+			<span class="dialog-footer">
+			  <el-button  @click="close()" icon="el-icon-circle-close">关闭</el-button>
+			  <el-button  type="primary" v-if="method != 'view'" @click="doSubmit()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
+			</span>
+			</template>
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+	import XEUtils from 'xe-utils'
+	import MeetingRoom from '@/api/jy/MeetingRoomService'
+	import { ElDatePicker } from 'element-plus';
+	export default {
+		props: {
+			businessId: {
+				type: String,
+				default: ''
+			},
+			formReadOnly: {
+				type: Boolean,
+				default: false
+			},
+			status: {
+				type: String,
+				default: ''
+			}
+		},
+		data () {
+			return {
+				title: '',
+				method: '',
+				loading: false,
+				visible: false,
+				inputForm: {
+					id: '',
+					title: '',
+					startTime: '',
+					startDate: '',
+					duration: '',
+					createById: this.$store.state.user.id,
+					createByName: this.$store.state.user.name,
+					createDate: '',
+					remarks: '',
+				},
+				baseKey: '',
+				keyWatch: '',
+				dateList:[]
+			}
+		},
+		MeetingRoom:null,
+		created () {
+			console.log('jld ')
+			this.meetingRoomServie=new MeetingRoom()
+		},
+		mounted () {
+		},
+		activated () {
+		},
+		components: {
+			ElDatePicker
+		},
+		computed: {
+			bus: {
+				get () {
+					return this.businessId
+				},
+				set (val) {
+					this.businessId = val
+				}
+			}
+		},
+		watch: {
+			'keyWatch': {
+				handler (newVal) {
+					console.log('几里路')
+					if (this.bus) {
+						if (this.bus !== 'false') {
+							this.init('', this.bus)
+						}
+					} else {
+						this.$nextTick(() => {
+							this.$refs.inputForm.resetFields()
+						})
+					}
+				}
+			},
+			'loading': {
+				handler (newVal) {
+					this.$emit('changeLoading', newVal)
+				}
+			}
+		},
+		methods: {
+			getKeyWatch(keyWatch) {
+				this.keyWatch = keyWatch
+			},
+			init(method, id) {
+				this.method = method
+				this.inputForm={
+					id:'',
+					title:'',
+					startTime:'',
+					startDate:'',
+					duration:'',
+					createById:'',
+					createByName:'',
+					createDate:'',
+					remarks:'',
+				}
+				this.visible= true
+				this.inputForm.id = id
+				this.loading = false
+				this.$nextTick(() => {
+					this.$refs.inputForm.resetFields()
+					this.loading = true
+					if (this.commonJS.isNotEmpty(this.inputForm.id)) {
+						console.log('this.inputForm.id', this.inputForm.id)
+						this.meetingRoomServie.queryById(this.inputForm.id).then((data)=>{
+							console.log('s',data)
+							this.inputForm = this.recover(this.inputForm, data)
+							this.inputForm.createById=data.createById
+							this.inputForm.createByName=data.createName
+							this.inputForm.duration=String(data.duration)
+							if(this.commonJS.isNotEmpty(this.inputForm.startDate)){
+								this.checkTime()
+							}
+							if (this.commonJS.isEmpty(this.inputForm.createDate)) {
+								this.inputForm.createDate = this.moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
+							}
+						})
+						this.loading = false
+					}
+				})
+			},
+			saveForm(callback) {
+				this.doSubmit('save', callback)
+			},
+			startForm(callback) {
+				this.loading = true
+				if (this.commonJS.isNotEmpty(this.inputForm.id)) {
+					this.meetingRoomServie.queryById(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.meetingRoomServie.queryById(this.inputForm.id).then((data) => {
+					if (data.status !== '2' ) { // status的值不等于“审核中”,就弹出提示
+						this.loading = false
+						this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
+						throw new Error()
+					} else {
+							this.inputForm.status= '5'
+						let param = {status: this.inputForm.status, id: this.inputForm.id}
+						this.inputForm=JSON.stringify(this.inputForm)
+						this.meetingRoomServie.updateStatusById(param).then(() => {
+							callback(data.businessTable, data.businessId, this.inputForm)
+							this.loading = false
+						}).catch(() => {
+							this.loading = false
+						})
+					}
+				})
+			},
+			reapplyForm(callback) {
+				this.loading = true
+				this.meetingRoomServie.queryById(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
+				console.log('5',this.inputForm)
+				if (status === 'save') {
+					// 暂存
+					this.loading = true
+					this.inputForm.status = '1'
+					this.meetingRoomServie.saveForm(this.inputForm).then((data) => {
+						callback(data.businessTable, data.businessId, this.inputForm)
+						this.loading = false
+					}).catch(() => {
+						this.loading = false
+					})
+					return
+				} else if (status === 'start') {
+					if (this.commonJS.isEmpty(this.inputForm.startDate)|| this.commonJS.isEmpty(this.inputForm.startTime)) {
+						this.$message.error('请选择会议开始时间')
+						this.loading = false
+					}
+					if (this.commonJS.isEmpty(this.inputForm.duration)) {
+						this.$message.error('请选择会议时长')
+						this.loading = false
+					}
+					if (this.commonJS.isEmpty(this.inputForm.title)) {
+						this.$message.error('请输入会议标题')
+						this.loading = false
+					}
+					// 送审  待审核
+					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
+						console.log('form',this.inputForm)
+						this.meetingRoomServie.saveForm(this.inputForm).then((data) => {
+							this.visible = false
+							this.$emit('refreshList')
+						}).catch(() => {
+							this.$refs.inputForm.resetFields()
+							this.loading = false
+						})
+					} else {
+						this.loading = false
+					}
+				})
+			},
+			close() {
+				this.inputForm = {
+					id:'',
+					projectList:[],
+					name:'',
+					no:'',
+					projectLeader:'',
+					projectCreateDate:'',
+					createById:'',
+					createByName:'',
+					createDate:'',
+					remarks:'',
+					files: [], // 附件信息
+					types:[], //用印类型
+					number:'', //用印份数
+					projectId:'',
+				}
+				this.visible = false
+			},
+			async updateStatusById(type, callback) {
+				this.loading = true
+					if (type === 'reject' || type === 'reback') {
+						this.meetingRoomServie.queryById(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.meetingRoomServie.updateStatusById(param).then(() => {
+										this.loading = false
+										callback()
+									})
+								}
+							}
+						})
+					} else if (type === 'hold') {
+						this.meetingRoomServie.queryById(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.meetingRoomServie.updateStatusById(param).then(() => {
+									this.loading = false
+									callback()
+								})
+							}
+						})
+					}
+
+			},
+			//禁用日期
+			disableDate(time) {
+				//Date.now()是javascript中的内置函数,它返回自1970年1月1日00:00:00 UTC以来经过的毫秒数。
+				return time.getTime() < Date.now() - 8.64e7;
+			},
+			//禁用小时
+			disabledHour(){
+				const arrs = []
+				arrs.push(0,1,2,3,4,5,6,7,8,12,13,18,19,20,21,22,23)
+				return arrs;
+			},
+			//禁用分钟
+			disabledMinute(time){
+				const arrs = []
+				if (time ===17){
+					for (let i = 0; i <59 ; i++) {
+						arrs.push(i+1)
+					}
+				}
+				if (time === 11){
+					for (let i=0;i<59;i++){
+						arrs.push(i+31)
+					}
+				}
+				return arrs;
+			},
+			checkTime(){
+				this.dateList=this.$dictUtils.getDictList('jy_meeting_date')
+				console.log('this.dateList',this.dateList)
+				this.inputForm.startTime=''
+				if (this.commonJS.isNotEmpty(this.inputForm.startDate)){
+					this.meetingRoomServie.checkTime(this.inputForm.startDate).then((data)=>{
+						console.log('data',data)
+						if (this.commonJS.isNotEmpty(data)){
+							var num = [];
+							for (var key in data) {
+								console.log(data[key])
+								let date1=data[key].replace(/:/g, '')
+
+								for (let i=0;i<this.dateList.length;i++){
+									let date2=this.dateList[i].value.replace(/:/g, "")
+									console.log('date2',date2)
+									if (date1===date2){
+										num.push(i)
+									}
+								}
+
+							}
+							console.log('num', num)
+							for (let i=0;i<num.length;i++){
+								console.log('num[i]', num[i])
+								this.dateList[num[i]].disabled = true
+							}
+
+						}
+					})
+
+				}
+
+
+			}
+
+		}
+
+	}
+</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>

+ 23 - 0
src/views/jy/daily/MeetingRoomForm.vue

@@ -183,12 +183,18 @@
 							this.inputForm.createById=data.createById
 							this.inputForm.createByName=data.createName
 							this.inputForm.duration=String(data.duration)
+							if (this.commonJS.isEmpty(data.duration)){
+								this.inputForm.duration=''
+							}
 							if(this.commonJS.isNotEmpty(this.inputForm.startDate)){
 								this.checkTime()
 							}
 							if (this.commonJS.isEmpty(this.inputForm.createDate)) {
 								this.inputForm.createDate = this.moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
 							}
+							if(this.commonJS.isNotEmpty(data.startTime)){
+								this.inputForm.startTime = data.startTime
+							}
 						})
 						this.loading = false
 					}
@@ -254,6 +260,12 @@
 					// 暂存
 					this.loading = true
 					this.inputForm.status = '1'
+					if (this.commonJS.isEmpty(this.inputForm.startTime)){
+						this.inputForm.startTime = null
+					}
+					if (this.commonJS.isEmpty(this.inputForm.startDate)){
+						this.inputForm.startDate = null
+					}
 					this.meetingRoomServie.saveForm(this.inputForm).then((data) => {
 						callback(data.businessTable, data.businessId, this.inputForm)
 						this.loading = false
@@ -274,6 +286,17 @@
 						this.$message.error('请输入会议标题')
 						this.loading = false
 					}
+					if (this.commonJS.isNotEmpty(this.inputForm.startTime)){
+						for (let i = 0; i <this.dateList.length ; i++) {
+							console.log('this.dateList',this.dateList)
+							if (this.dateList[i].disabled === true && this.dateList[i].value === this.inputForm.startTime){
+								this.$message.error('会议室当前无空余,请选择其他时间')
+								this.loading = false
+								return
+							}
+						}
+					}
+
 					// 送审  待审核
 					this.inputForm.status = '2'
 				} else if (status === 'agree') {

+ 17 - 11
src/views/jy/daily/MeetingRoomList.vue

@@ -5,10 +5,10 @@
 			<el-form-item label="标题" prop="title">
 				<el-input v-model="searchForm.title" placeholder="请输入标题" clearable></el-input>
 			</el-form-item>
-			<el-form-item v-if="showHideItem" label="发起人" prop="createById">
+			<el-form-item  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"  prop="officeId" label="发起人部门">
+			<el-form-item   prop="officeId" label="发起人部门">
 				<SelectTree
 					ref="officeTree"
 					:props="{
@@ -100,17 +100,18 @@
 					</vxe-column>
 					<vxe-column title="操作" width="150px" fixed="right" align="center">
 						<template  #default="scope">
-							<div v-if="isAdmin">
-								<el-button text type="primary" size="small" v-if="scope.row.status==='0' || scope.row.status==='5'" @click="del(scope.row.id)">删除</el-button>
+							<div >
+								<el-button text type="primary" size="small" v-if="hasPermission('admin:edit')" @click="adminEdit(scope.row.id)">修改</el-button>
+								<el-button text type="primary" size="small" v-if="hasPermission('admin:del')" @click="del(scope.row.id)">删除</el-button>
 							</div>
-							<div v-else>
-								<el-button v-if="scope.row.status === '1'|| scope.row.status === '3'" size="small" text type="primary"  @click="edit(scope.row)">修改</el-button>
-								<el-button text type="primary" size="small" v-if="scope.row.status==='0' || scope.row.status==='1'|| scope.row.status==='3'" @click="del(scope.row.id)">删除</el-button>
+							<div >
+								<el-button v-if="hasPermission('jy_meeting:info:edit') && (scope.row.status === '1'|| scope.row.status === '3')" size="small" text type="primary"  @click="edit(scope.row)">修改</el-button>
+								<el-button text type="primary" size="small" v-if="hasPermission('jy_meeting:info:del') &&(scope.row.status==='0' || scope.row.status==='1'|| scope.row.status==='3')" @click="del(scope.row.id)">删除</el-button>
 								<!--              当前申请人撤回-->
-								<el-button v-if="scope.row.createById === $store.state.user.id && scope.row.status==='2'" text type="primary" size="small" @click="reback(scope.row)">撤回</el-button>
+								<el-button v-if="hasPermission('jy_meeting:info:edit') &&scope.row.createById === $store.state.user.id && scope.row.status==='2'" text type="primary" size="small" @click="reback(scope.row)">撤回</el-button>
 
-								<el-button v-if="scope.row.status==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examine(scope.row)">审核</el-button>
-								<el-button v-if="scope.row.status === '4'&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="adjust(scope.row)">驳回调整</el-button>
+								<el-button v-if="hasPermission('jy_meeting:info:edit') &&scope.row.status==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examine(scope.row)">审核</el-button>
+								<el-button v-if="hasPermission('jy_meeting:info:edit') &&scope.row.status === '4'&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="adjust(scope.row)">驳回调整</el-button>
 							</div>
 						</template>
 					</vxe-column>
@@ -128,7 +129,7 @@
 			</div>
 		</div>
 
-
+			<MeetingForm ref="meetingForm" @refreshList="refreshList"></MeetingForm>
 	</div>
 
 </template>
@@ -142,6 +143,7 @@
 	import userService from '@/api/sys/userService'
 	import pick from 'lodash.pick'
 	import SupplierChooseForm from '@/views/materialManagement/supplier/SupplierChooseForm'
+	import MeetingForm from './MeetingForm'
 	export default {
 		data () {
 			return {
@@ -182,6 +184,7 @@
 			SelectTree,
 			UserSelect,
 			SupplierChooseForm,
+			MeetingForm
 		},
 		computed: {
 			userName () {
@@ -273,6 +276,9 @@
 				this.dialogTableVisible=true
 				console.log('z',this.gridData)
 			},
+			adminEdit(id){
+				this.$refs.MeetingForm.init('edit',id)
+			},
 			// 查询当前用户是否是管理员用户
 			checkIsAdmin () {
 				userService.is().then((data) => {

+ 2 - 2
src/views/jy/drive/DriveAccountForm.vue

@@ -39,9 +39,9 @@
 								<el-input :disabled="true" :readonly="true" placeholder="请填写项目编号" v-model="scope.row.no"/>
 							</template>
 						</vxe-table-column>
-						<vxe-table-column  field="projectLeader" align="center" title="项目负责人" :edit-render="{}">
+						<vxe-table-column  field="leader" align="center" title="项目负责人" :edit-render="{}">
 							<template v-slot:edit="scope">
-								<el-input :disabled="true" placeholder="请填写项目负责人" v-model="scope.row.projectLeader"/>
+								<el-input :disabled="true" placeholder="请填写项目负责人" v-model="scope.row.leader"/>
 							</template>
 						</vxe-table-column>
 						<vxe-table-column field="createTime" align="center" title="创建时间" :edit-render="{}">

+ 16 - 17
src/views/jy/drive/DriveList.vue

@@ -99,23 +99,24 @@
 					</vxe-column>
 					<vxe-column title="操作" width="150px" fixed="right" align="center">
 						<template  #default="scope">
-							<div v-if="isAdmin">
-								<el-button text type="primary" size="small" v-if="scope.row.status==='0' || scope.row.status==='5'" @click="del(scope.row.id)">删除</el-button>
-								<el-button  size="small" text type="primary"  @click="adminEdit(scope.row)">修改</el-button>
+							<div >
+<!--								管理员修改-->
+								<el-button v-if="hasPermission('admin:edit')" size="small" text type="primary"  @click="adminEdit(scope.row)">修改</el-button>
+								<el-button text type="primary" size="small" v-if="hasPermission('admin:del')" @click="del(scope.row.id)">删除</el-button>
 							</div>
-							<div v-else>
-								<el-button v-if="(scope.row.status === '0'||scope.row.status === '1'|| scope.row.status === '3')" size="small" text type="primary"  @click="edit(scope.row)">修改</el-button>
-								<el-button text type="primary" size="small" v-if="scope.row.status==='0' || scope.row.status==='1'|| scope.row.status==='3'" @click="del(scope.row.id)">删除</el-button>
+							<div >
+								<el-button v-if="hasPermission('drive:info:edit')&&(scope.row.status === '0'||scope.row.status === '1'|| scope.row.status === '3')" size="small" text type="primary"  @click="edit(scope.row)">修改</el-button>
+								<el-button text type="primary" size="small" v-if="hasPermission('drive:info:del')&&(scope.row.status==='0' || scope.row.status==='1'|| scope.row.status==='3')" @click="del(scope.row.id)">删除</el-button>
 								<!--              当前申请人撤回-->
-								<el-button v-if="scope.row.createById === $store.state.user.id && scope.row.status==='2'" text type="primary" size="small" @click="reback(scope.row)">撤回</el-button>
+								<el-button v-if="hasPermission('drive:info:edit')&&(scope.row.createById === $store.state.user.id && scope.row.status==='2')" text type="primary" size="small" @click="reback(scope.row)">撤回</el-button>
 
-								<el-button v-if="scope.row.status==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examine(scope.row)">审核</el-button>
-								<el-button v-if="scope.row.status === '4'&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="adjust(scope.row)">驳回调整</el-button>
-								<el-button v-if="scope.row.status === '5'&&(scope.row.accountStatus === undefined ||scope.row.accountStatus === '' ||scope.row.accountStatus === null ||scope.row.accountStatus === '0' || scope.row.accountStatus === '1' || scope.row.accountStatus==='3')&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="account(scope.row)">用车结算</el-button>
-								<el-button v-if="scope.row.createById === $store.state.user.id && scope.row.accountStatus==='2'" text type="primary" size="small" @click="rebackAccount(scope.row)">结算撤回</el-button>
+								<el-button v-if="hasPermission('drive:info:edit')&&scope.row.status==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examine(scope.row)">审核</el-button>
+								<el-button v-if="hasPermission('drive:info:edit')&&scope.row.status === '4'&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="adjust(scope.row)">驳回调整</el-button>
+								<el-button v-if="hasPermission('drive:info:edit')&&scope.row.status === '5'&&(scope.row.accountStatus === undefined ||scope.row.accountStatus === '' ||scope.row.accountStatus === null ||scope.row.accountStatus === '0' || scope.row.accountStatus === '1' || scope.row.accountStatus==='3')&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="account(scope.row)">用车结算</el-button>
+								<el-button v-if="hasPermission('drive:info:edit')&&scope.row.createById === $store.state.user.id && scope.row.accountStatus==='2'" text type="primary" size="small" @click="rebackAccount(scope.row)">结算撤回</el-button>
 
-								<el-button v-if="scope.row.accountStatus==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examineAccount(scope.row)">结算审核</el-button>
-								<el-button v-if="scope.row.accountStatus === '4'&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="adjustAccount(scope.row)">结算驳回调整</el-button>
+								<el-button v-if="hasPermission('drive:info:edit')&&scope.row.accountStatus==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examineAccount(scope.row)">结算审核</el-button>
+								<el-button v-if="hasPermission('drive:info:edit')&&scope.row.accountStatus === '4'&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="adjustAccount(scope.row)">结算驳回调整</el-button>
 							</div>
 						</template>
 					</vxe-column>
@@ -594,10 +595,8 @@
 			},
 			getProgram(row){
 				console.log('row',row)
-				row.forEach(item=>{
-					this.searchForm.projectId = item.id
-					this.searchForm.projectName=item.name
-				})
+					this.searchForm.projectId = row.id
+					this.searchForm.projectName=row.name
 
 			},
 

+ 3 - 2
src/views/jy/drive/ProjectForm.vue

@@ -19,13 +19,14 @@
 			<el-form :inline="true" class="query-form" ref="searchForm" :model="searchForm" @submit.native.prevent>
 				<!-- 搜索框-->
 				<el-form-item label="项目名称" prop="name">
-					<el-input v-model="searchForm.name" placeholder="请输入项目名称" clearable></el-input>
+					<el-input size="primary"  v-model="searchForm.name" placeholder="请输入项目名称" clearable></el-input>
 				</el-form-item>
 				<el-form-item label="项目编号" prop="no">
-					<el-input v-model="searchForm.no" placeholder="请输入项目编号" clearable></el-input>
+					<el-input size="primary" v-model="searchForm.no" placeholder="请输入项目编号" clearable></el-input>
 				</el-form-item>
 				<el-form-item label="创建时间" prop="createDates">
 					<el-date-picker
+						style="width: 300px"
 						placement="bottom-start"
 						format="YYYY-MM-DD HH:mm:ss"
 						value-format="YYYY-MM-DD HH:mm:ss"

+ 14 - 1
src/views/jy/driveInfo/DriveInfoAddForm.vue

@@ -16,7 +16,7 @@
 									  :rules="[
                           {required: true, message:'车牌号不能为空', trigger:'blur'}
                  ]">
-							<el-input v-model="inputForm.driveNumber" placeholder="请填写车牌号"></el-input>
+							<el-input @blur="checkNumber" v-model="inputForm.driveNumber" placeholder="请填写车牌号"></el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :span="21">
@@ -109,6 +109,19 @@
 			close () {
 				this.$refs.inputForm.resetFields()
 				this.visible = false
+			},
+			checkNumber(){
+				this.loading = true
+				if (this.commonJS.isNotEmpty(this.inputForm.driveNumber)){
+					this.driveInfoService.checkNumber(this.inputForm.driveNumber).then(data=>{
+						if (data){
+							this.$message.error('已存在该车辆')
+							this.loading = false
+							throw new Error()
+						}
+					})
+				}
+
 			}
 		}
 	}

+ 2 - 2
src/views/jy/driveInfo/DriveInfoDia.vue

@@ -13,10 +13,10 @@
 			<div style="height: calc(100%);">
 				<el-form :inline="true" class="query-form" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
 					<!-- 搜索框-->
-					<el-form-item prop="driveNumber">
+					<el-form-item label="车牌号" prop="driveNumber">
 						<el-input v-model="searchForm.driveNumber" placeholder="请输入车牌号" clearable></el-input>
 					</el-form-item>
-					<el-form-item prop="driveIdentifyNumber">
+					<el-form-item label="车辆识别号" prop="driveIdentifyNumber">
 						<el-input v-model="searchForm.driveIdentifyNumber" placeholder="请输入车辆识别号" clearable></el-input>
 					</el-form-item>
 					<el-form-item>

+ 2 - 2
src/views/jy/driveInfo/DriveInfoList.vue

@@ -2,10 +2,10 @@
 	<div class="page">
 		<el-form :inline="true" class="query-form" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
 			<!-- 搜索框-->
-			<el-form-item prop="driveNumber">
+			<el-form-item label="车牌号" prop="driveNumber">
 				<el-input v-model="searchForm.driveNumber" placeholder="请输入车牌号" clearable></el-input>
 			</el-form-item>
-			<el-form-item prop="driveIdentifyNumber">
+			<el-form-item label="车辆识别号" prop="driveIdentifyNumber">
 				<el-input v-model="searchForm.driveIdentifyNumber" placeholder="请输入车辆识别号" clearable></el-input>
 			</el-form-item>
 			<el-form-item>

+ 9 - 9
src/views/jy/driveMaintain/DriveMaintain.vue

@@ -91,18 +91,18 @@
 					</vxe-column>
 					<vxe-column title="操作" width="150px" fixed="right" align="center">
 						<template  #default="scope">
-							<div v-if="isAdmin">
-								<el-button text type="primary" size="small" v-if="scope.row.status==='0' || scope.row.status==='5'" @click="del(scope.row.id)">删除</el-button>
-								<el-button  size="small" text type="primary"  @click="adminEdit(scope.row)">修改</el-button>
+							<div>
+								<el-button  size="small" text type="primary" v-if="hasPermission('admin:edit')"  @click="adminEdit(scope.row)">修改</el-button>
+								<el-button text type="primary" size="small" v-if="hasPermission('admin:del')" @click="del(scope.row.id)">删除</el-button>
 							</div>
-							<div v-else>
-								<el-button text type="primary" size="small" v-if="scope.row.status==='0' || scope.row.status==='1'|| scope.row.status==='3'" @click="del(scope.row.id)">删除</el-button>
-								<el-button v-if="(scope.row.status === '0'||scope.row.status === '1'|| scope.row.status === '3')" size="small" text type="primary"  @click="edit(scope.row)">修改</el-button>
+							<div>
+								<el-button v-if="hasPermission('drive:info:add')&&(scope.row.status === '0'||scope.row.status === '1'|| scope.row.status === '3')" size="small" text type="primary"  @click="edit(scope.row)">修改</el-button>
+								<el-button text type="primary" size="small" v-if="hasPermission('drive:info:del')&&(scope.row.status==='0' || scope.row.status==='1'|| scope.row.status==='3')" @click="del(scope.row.id)">删除</el-button>
 								<!--              当前申请人撤回-->
-								<el-button v-if="scope.row.createById === $store.state.user.id && scope.row.status==='2'" text type="primary" size="small" @click="reback(scope.row)">撤回</el-button>
+								<el-button v-if="hasPermission('drive:info:add')&&scope.row.createById === $store.state.user.id && scope.row.status==='2'" text type="primary" size="small" @click="reback(scope.row)">撤回</el-button>
 
-								<el-button v-if="scope.row.status==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examine(scope.row)">审核</el-button>
-								<el-button v-if="scope.row.status === '4'&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="adjust(scope.row)">驳回调整</el-button>
+								<el-button v-if="hasPermission('drive:info:add')&&scope.row.status==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examine(scope.row)">审核</el-button>
+								<el-button v-if="hasPermission('drive:info:add')&&scope.row.status === '4'&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="adjust(scope.row)">驳回调整</el-button>
 
 							</div>
 						</template>

+ 1 - 1
src/views/jy/driveMaintain/DriveMaintainAddForm.vue

@@ -29,7 +29,7 @@
 				</el-col>
 				<el-col :span="12">
 					<el-form-item label="维护类型" prop="driveMaintainType"
-								  :rules="[ {required: true, message:'维护类型不能为空', trigger:'blur'}]">
+								  :rules="[ {required: true, message:'维护类型不能为空', trigger:'change'}]">
 						<el-select style="width:100%;" v-model="inputForm.driveMaintainType" placeholder="维护类型" clearable>
 							<el-option
 								v-for="item in $dictUtils.getDictList('jy_drive_maintain_type')"

+ 4 - 1
src/views/jy/evection/EvectionForm.vue

@@ -83,7 +83,7 @@
 				</el-col>
 				<el-col :span="12">
 					<el-form-item prop="targetCity" label="目的地"
-								  :rules="[ {required: true, message:'目的地不能为空', trigger:'blur'}]">
+								  :rules="[ {required: true, message:'目的地不能为空', trigger:'change'}]">
 						<SelectTree
 							ref="areaTree"
 							:props="{
@@ -251,6 +251,9 @@
 							if (this.status === 'audit' || this.status === 'taskFormDetail') {
 								method = 'view'
 							}
+							if (this.commonJS.isEmpty(this.inputForm.projectList)){
+								this.inputForm.projectList=[]
+							}
 							console.log('me',method)
 							this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'evection',null,null,null,null,null)
 							this.loading = false

+ 9 - 9
src/views/jy/evection/EvectionList.vue

@@ -124,18 +124,18 @@
 					</vxe-column>
 					<vxe-column title="操作" width="150px" fixed="right" align="center">
 						<template  #default="scope">
-							<div v-if="isAdmin">
-								<el-button  size="small" text type="primary"  @click="adminEdit(scope.row)">修改</el-button>
-								<el-button text type="primary" size="small" v-if="scope.row.status==='0' || scope.row.status==='5'" @click="del(scope.row.id)">删除</el-button>
+							<div >
+								<el-button v-if="hasPermission('admin:edit')"  size="small" text type="primary"  @click="adminEdit(scope.row)">修改</el-button>
+								<el-button text type="primary" size="small" v-if="hasPermission('admin:del')" @click="del(scope.row.id)">删除</el-button>
 							</div>
-							<div v-else>
-								<el-button v-if="(scope.row.status === '0'||scope.row.status === '1'|| scope.row.status === '3')" size="small" text type="primary"  @click="edit(scope.row)">修改</el-button>
-								<el-button text type="primary" size="small" v-if="scope.row.status==='0' || scope.row.status==='1'|| scope.row.status==='3'" @click="del(scope.row.id)">删除</el-button>
+							<div >
+								<el-button v-if="hasPermission('evection:edit')&&(scope.row.status === '0'||scope.row.status === '1'|| scope.row.status === '3')" size="small" text type="primary"  @click="edit(scope.row)">修改</el-button>
+								<el-button text type="primary" size="small" v-if="hasPermission('evection:del')&&(scope.row.status==='0' || scope.row.status==='1'|| scope.row.status==='3')" @click="del(scope.row.id)">删除</el-button>
 								<!--              当前申请人撤回-->
-								<el-button v-if="scope.row.createById === $store.state.user.id && scope.row.status==='2'" text type="primary" size="small" @click="reback(scope.row)">撤回</el-button>
+								<el-button v-if="hasPermission('evection:edit')&&scope.row.createById === $store.state.user.id && scope.row.status==='2'" text type="primary" size="small" @click="reback(scope.row)">撤回</el-button>
 
-								<el-button v-if="scope.row.status==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examine(scope.row)">审核</el-button>
-								<el-button v-if="scope.row.status === '4'&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="adjust(scope.row)">驳回调整</el-button>
+								<el-button v-if="hasPermission('evection:edit')&&scope.row.status==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examine(scope.row)">审核</el-button>
+								<el-button v-if="hasPermission('evection:edit')&&scope.row.status === '4'&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="adjust(scope.row)">驳回调整</el-button>
 							</div>
 						</template>
 					</vxe-column>

+ 16 - 16
src/views/jy/finance/InvoiceList.vue

@@ -257,11 +257,11 @@
           </vxe-column>
           <vxe-column min-width="215" title="操作"  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.id)">修改</el-button>
-                <el-button v-if="(scope.row.status === '5')" text type="primary"  @click="del(scope.row.id)">删除</el-button>
+              <div >
+                <el-button v-if="hasPermission('admin:edit')" text type="primary"  @click="editForm(scope.row.id)">修改</el-button>
+                <el-button v-if="hasPermission('admin:del')" text type="primary"  @click="del(scope.row.id)">删除</el-button>
               </div>
-              <div v-else>
+              <div >
               <el-button v-if="hasPermission('cw_finance:invoice:edit')&&scope.row.createBy.id === $store.state.user.id&&(scope.row.status === '1'||scope.row.status === '3')" text type="primary" @click="invoicePush(scope.row)">修改</el-button>
               <el-button v-if="hasPermission('cw_finance:invoice:edit')&&scope.row.createBy.id === $store.state.user.id&&scope.row.status === '2'" text type="primary"  @click="invoiceReback(scope.row)">撤回</el-button>
               <el-button v-if="hasPermission('cw_finance:invoice:edit:detail')&&scope.row.status === '5'&&scope.row.receivablesStatus !== '1'" text type="primary"  @click="editDetail(scope.row.id)">修改发票明细</el-button>
@@ -450,18 +450,18 @@
       },
       // 查看项目数据
       viewProject (row) {
-
-      	if (row.recordType=='1'){
-			this.projectInfoService.findById(row.programId).then((data)=>{
-				console.log('data',data)
-				this.$refs.projectForm.init('view', data.id,data.auditId1, data.auditId2, data.auditId3,data.sealId,data.outInstanceId,data.reportsSubmitId,data.archiveId,data.eiaId)
-			})
-		}else if (row.recordType=='2'){
-			this.$refs.reportManagementForm.init('view', row.programId, '报告审核单下载')
-		}else if (row.recordType=='0'){
-			this.dialogFormVisible=true
-			this.searchForm.programName=row.programName
-		}
+		  this.projectInfoService.findById(row.programId).then((data)=>{
+			  console.log('data',data)
+			  this.$refs.projectForm.init('view', data.id,data.auditId1, data.auditId2, data.auditId3,data.sealId,data.outInstanceId,data.reportsSubmitId,data.archiveId,data.eiaId)
+		  })
+      	// if (row.recordType=='1'){
+		//
+		// }else if (row.recordType=='2'){
+		// 	this.$refs.reportManagementForm.init('view', row.programId, '报告审核单下载')
+		// }else if (row.recordType=='0'){
+		// 	this.dialogFormVisible=true
+		// 	this.searchForm.programName=row.programName
+		// }
 
       },
       // 获取数据列表

+ 6 - 3
src/views/jy/goOut/GoOutForm.vue

@@ -83,7 +83,7 @@
 				</el-col>
 				<el-col :span="12">
 					<el-form-item prop="targetCity" label="目的地"
-								  :rules="[ {required: true, message:'目的地不能为空', trigger:'blur'}]">
+								  :rules="[ {required: true, message:'目的地不能为空', trigger:'change'}]">
 						<SelectTree
 							ref="areaTree"
 							:props="{
@@ -251,6 +251,9 @@
 							if (this.status === 'audit' || this.status === 'taskFormDetail') {
 								method = 'view'
 							}
+							if (this.commonJS.isEmpty(this.inputForm.projectList)){
+								this.inputForm.projectList=[]
+							}
 							console.log('me',method)
 							this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'goOut',null,null,null,null,null)
 							this.loading = false
@@ -278,10 +281,10 @@
 					this.doSubmit('start', callback)
 				}
 			},
-			async agreeForm(callback) {
+			 agreeForm(callback) {
 				console.log('进入方法')
 				this.loading = true
-				await this.goOutService.queryById(this.inputForm.id).then((data) => {
+				 this.goOutService.queryById(this.inputForm.id).then((data) => {
 					if (data.status !== '2' ) { // status的值不等于“审核中”,就弹出提示
 						this.loading = false
 						this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')

+ 9 - 9
src/views/jy/goOut/GoOutList.vue

@@ -124,18 +124,18 @@
 					</vxe-column>
 					<vxe-column title="操作" width="150px" fixed="right" align="center">
 						<template  #default="scope">
-							<div v-if="isAdmin">
-								<el-button  size="small" text type="primary"  @click="adminEdit(scope.row)">修改</el-button>
-								<el-button text type="primary" size="small" v-if="scope.row.status==='0' || scope.row.status==='5'" @click="del(scope.row.id)">删除</el-button>
+							<div >
+								<el-button v-if="hasPermission('admin:edit')"  size="small" text type="primary"  @click="adminEdit(scope.row)">修改</el-button>
+								<el-button text type="primary" size="small" v-if="hasPermission('admin:del')" @click="del(scope.row.id)">删除</el-button>
 							</div>
-							<div v-else>
-								<el-button v-if="(scope.row.status === '0'||scope.row.status === '1'|| scope.row.status === '3')" size="small" text type="primary"  @click="edit(scope.row)">修改</el-button>
-								<el-button text type="primary" size="small" v-if="scope.row.status==='0' || scope.row.status==='1'|| scope.row.status==='3'" @click="del(scope.row.id)">删除</el-button>
+							<div>
+								<el-button v-if="hasPermission('goOut:edit')&&(scope.row.status === '0'||scope.row.status === '1'|| scope.row.status === '3')" size="small" text type="primary"  @click="edit(scope.row)">修改</el-button>
+								<el-button text type="primary" size="small" v-if="hasPermission('goOut:del')&&(scope.row.status==='0' || scope.row.status==='1'|| scope.row.status==='3')" @click="del(scope.row.id)">删除</el-button>
 								<!--              当前申请人撤回-->
-								<el-button v-if="scope.row.createById === $store.state.user.id && scope.row.status==='2'" text type="primary" size="small" @click="reback(scope.row)">撤回</el-button>
+								<el-button v-if="hasPermission('goOut:edit')&&scope.row.createById === $store.state.user.id && scope.row.status==='2'" text type="primary" size="small" @click="reback(scope.row)">撤回</el-button>
 
-								<el-button v-if="scope.row.status==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examine(scope.row)">审核</el-button>
-								<el-button v-if="scope.row.status === '4'&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="adjust(scope.row)">驳回调整</el-button>
+								<el-button v-if="hasPermission('goOut:edit')&&scope.row.status==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examine(scope.row)">审核</el-button>
+								<el-button v-if="hasPermission('goOut:edit')&&scope.row.status === '4'&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="adjust(scope.row)">驳回调整</el-button>
 							</div>
 						</template>
 					</vxe-column>

+ 10 - 10
src/views/jy/holiday/HolidayList.vue

@@ -55,7 +55,7 @@
 		<div class="jp-table top" style="">
 			<vxe-toolbar ref="toolbarRef" :refresh="{query: refreshList}" export custom>
 				<template #buttons>
-					<el-button v-if="hasPermission('evection:add')" :disabled="isAdmin" type="primary" icon="el-icon-plus" @click="add()">新建</el-button>
+					<el-button v-if="hasPermission('holiday:add')" :disabled="isAdmin" type="primary" icon="el-icon-plus" @click="add()">新建</el-button>
 				</template>
 				<template #tools>
 					<vxe-button
@@ -114,18 +114,18 @@
 					</vxe-column>
 					<vxe-column title="操作" width="150px" fixed="right" align="center">
 						<template  #default="scope">
-							<div v-if="isAdmin">
-								<el-button  size="small" text type="primary"  @click="adminEdit(scope.row)">修改</el-button>
-								<el-button text type="primary" size="small" v-if="scope.row.status==='0' || scope.row.status==='5'" @click="del(scope.row.id)">删除</el-button>
+							<div >
+								<el-button  size="small" text type="primary" v-if="hasPermission('admin:edit')"  @click="adminEdit(scope.row)">修改</el-button>
+								<el-button text type="primary" size="small" v-if="hasPermission('admin:del')" @click="del(scope.row.id)">删除</el-button>
 							</div>
-							<div v-else>
-								<el-button v-if="(scope.row.status === '0'||scope.row.status === '1'|| scope.row.status === '3')" size="small" text type="primary"  @click="edit(scope.row)">修改</el-button>
-								<el-button text type="primary" size="small" v-if="scope.row.status==='0' || scope.row.status==='1'|| scope.row.status==='3'" @click="del(scope.row.id)">删除</el-button>
+							<div >
+								<el-button v-if="hasPermission('holiday:edit')&&(scope.row.status === '0'||scope.row.status === '1'|| scope.row.status === '3')" size="small" text type="primary"  @click="edit(scope.row)">修改</el-button>
+								<el-button text type="primary" size="small" v-if="hasPermission('holiday:del')&&(scope.row.status==='0' || scope.row.status==='1'|| scope.row.status==='3')" @click="del(scope.row.id)">删除</el-button>
 								<!--              当前申请人撤回-->
-								<el-button v-if="scope.row.createById === $store.state.user.id && scope.row.status==='2'" text type="primary" size="small" @click="reback(scope.row)">撤回</el-button>
+								<el-button v-if="hasPermission('holiday:edit')&&scope.row.createById === $store.state.user.id && scope.row.status==='2'" text type="primary" size="small" @click="reback(scope.row)">撤回</el-button>
 
-								<el-button v-if="scope.row.status==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examine(scope.row)">审核</el-button>
-								<el-button v-if="scope.row.status === '4'&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="adjust(scope.row)">驳回调整</el-button>
+								<el-button v-if="hasPermission('holiday:edit')&&scope.row.status==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examine(scope.row)">审核</el-button>
+								<el-button v-if="hasPermission('holiday:edit')&&scope.row.status === '4'&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="adjust(scope.row)">驳回调整</el-button>
 							</div>
 						</template>
 					</vxe-column>

+ 396 - 0
src/views/jy/humanResources/DimissionDia.vue

@@ -0,0 +1,396 @@
+<template xmlns:v-slot="http://www.w3.org/1999/XSL/Transform">
+	<div>
+		<el-dialog
+			:title="title"
+			:close-on-click-modal="false"
+			draggable
+			width="1300px"
+			@close="close"
+			@keyup.enter.native=""
+			v-model="visible">
+		<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="creatName"
+								  :rules="[]">
+						<el-input v-model="inputForm.createName" :disabled="true" ></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="部门" prop="officeName"
+								  :rules="[]">
+						<el-input v-model="inputForm.officeName" :disabled="true" ></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="离职时间" prop="dimissionDate"
+								  :rules="[
+								  {required: true, message:'离职时间不能为空', trigger:'blur'}]">
+						<el-date-picker
+							style="width: 100%"
+							v-model="inputForm.dimissionDate"
+							type="date"
+							format="YYYY-MM-DD"
+							value-format="YYYY-MM-DD"
+							placeholder="选择日期"
+							@change="checkTime"
+						/>
+					</el-form-item>
+				</el-col>
+				<el-col :span="24">
+					<el-form-item label="离职原因" prop="reason"
+								  :rules="[{required: true, message:'离职原因不能为空', trigger:'blur'}]">
+						<el-input :disabled="status === 'audit' || status === 'taskFormDetail' || method === 'view'" type="textarea" placeholder="请输入原因"  maxlength="500"  style="width:100%" v-model="inputForm.reason" show-word-limit></el-input>
+					</el-form-item>
+				</el-col>
+			</el-row>
+		</el-form>
+		<UpLoadComponent ref="uploadComponent"></UpLoadComponent>
+			<template #footer>
+			<span class="dialog-footer">
+			  <el-button  @click="close()" icon="el-icon-circle-close">关闭</el-button>
+			  <el-button  type="primary" v-if="method != 'view'" @click="doSubmit()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
+			</span>
+			</template>
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+	import XEUtils from 'xe-utils'
+	import DimissionService from '@/api/jy/DimissionService'
+	import { ElDatePicker } from 'element-plus';
+	import UserSelectSignatory from '../workClientInfo/clientUserSelect'
+	import UpLoadComponent from '@/views/common/UpLoadComponent'
+	import CommonApi from '@/api/cw/common/CommonApi'
+	import SelectTree from '@/components/treeSelect/treeSelect.vue'
+	export default {
+		props: {
+			businessId: {
+				type: String,
+				default: ''
+			},
+			formReadOnly: {
+				type: Boolean,
+				default: false
+			},
+			status: {
+				type: String,
+				default: ''
+			}
+		},
+		data () {
+			return {
+				title: '',
+				method: '',
+				loading: false,
+				visible: false,
+				inputForm: {
+					id: '',
+					createName:this.$store.state.user.name,
+					officeName:this.$store.state.user.office.name,
+					dimissionDate:'',
+					reason: '',
+					files: [], // 附件信息
+					procInsId: '',
+
+				},
+				baseKey: '',
+				keyWatch: '',
+				dateList:[],
+				programRow:'',
+				days:'',
+
+			}
+		},
+		DimissionService:null,
+		commonApi: null,
+		created () {
+			this.dimissionService=new DimissionService()
+			this.commonApi = new CommonApi()
+		},
+		mounted () {
+		},
+		activated () {
+		},
+		components: {
+			ElDatePicker,
+			UserSelectSignatory,
+			UpLoadComponent,
+			SelectTree,
+		},
+		computed: {
+			bus: {
+				get () {
+					this.$refs.uploadComponent.setDividerName('附件')
+					return this.businessId
+				},
+				set (val) {
+					this.businessId = val
+				}
+			}
+		},
+		watch: {
+			'keyWatch': {
+				handler (newVal) {
+					console.log('几里路')
+					if (this.bus) {
+						if (this.bus !== 'false') {
+							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.method = method
+				this.inputForm={
+					id: '',
+					createName:'',
+					officeName:'',
+					dimissionDate:'',
+					reason: '',
+					files: [], // 附件信息
+					procInsId: '',
+				}
+				this.inputForm.id = id
+				this.loading = false
+				this.visible = true
+				this.$nextTick(() => {
+					this.$refs.inputForm.resetFields()
+					this.loading = true
+					this.$refs.uploadComponent.clearUpload()
+					if (this.commonJS.isNotEmpty(this.inputForm.id)) {
+						console.log('this.inputForm.id', this.inputForm.id)
+						this.dimissionService.queryById(this.inputForm.id).then((data)=>{
+							this.inputForm = this.recover(this.inputForm, data)
+							this.days=data.days
+							this.inputForm.files=data.files
+							console.log('s',this.inputForm)
+							if (this.status === 'audit' || this.status === 'taskFormDetail') {
+								method = 'view'
+							}
+							console.log('me',method)
+							this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'jyHoliday',null,null,null,null,null)
+							this.loading = false
+						})
+
+					}
+				})
+			},
+			saveForm(callback) {
+				this.doSubmit('save', callback)
+			},
+			startForm(callback) {
+				this.loading = true
+				if (this.commonJS.isNotEmpty(this.inputForm.id)) {
+					this.dimissionService.queryById(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.dimissionService.queryById(this.inputForm.id).then((data) => {
+					if (data.status !== '2' ) { // status的值不等于“审核中”,就弹出提示
+						this.loading = false
+						this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
+						throw new Error()
+					} else {
+						this.inputForm.status= '2'
+							this.commonApi.getTaskNameByProcInsId(this.inputForm.procInsId).then((da)=>{
+								if (this.commonJS.isNotEmpty(da)) {
+									if (da === '公司领导审核') {
+										this.inputForm.status = '5'
+									}
+								}
+								let param = {status: this.inputForm.status, id: this.inputForm.id}
+								this.inputForm=JSON.stringify(this.inputForm)
+								this.dimissionService.saveForm(this.inputForm).then(() => {
+									callback(data.businessTable, data.businessId, this.inputForm,data.days)
+									this.loading = false
+								}).catch(() => {
+									this.loading = false
+								})
+							})
+					}
+				})
+			},
+			reapplyForm(callback) {
+				this.loading = true
+				this.dimissionService.queryById(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
+				console.log('5',this.inputForm)
+				if (status === 'save') {
+					// 暂存
+					this.loading = true
+					this.inputForm.status = '1'
+					if (this.$refs.uploadComponent.checkProgress()) {
+						this.loading = false
+						return
+					}
+					this.inputForm.files = this.$refs.uploadComponent.getDataList()
+					this.dimissionService.saveForm(this.inputForm).then((data) => {
+						callback(data.businessTable, data.businessId, this.inputForm,data.days)
+						this.loading = false
+					}).catch(() => {
+						this.loading = false
+					})
+					return
+				} else if (status === 'start') {
+
+					if (this.commonJS.isEmpty(this.inputForm.dimissionDate)){
+						this.$message.error('请选择离职时间')
+						this.loading = false
+					}
+					if (this.commonJS.isEmpty(this.inputForm.reason)){
+						this.$message.error('请输入离职原因')
+						this.loading = false
+					}
+					if (this.$refs.uploadComponent.checkProgress()) {
+						this.loading = false
+						return
+					}
+					this.inputForm.files = this.$refs.uploadComponent.getDataList()
+					// 送审  待审核
+					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
+						console.log('form',this.inputForm)
+						this.inputForm=JSON.parse(JSON.stringify(this.inputForm))
+						this.dimissionService.saveForm(this.inputForm).then((data) => {
+							this.visible = false
+							this.$emit('refreshList')
+						}).catch(() => {
+							this.$refs.inputForm.resetFields()
+							this.loading = false
+						})
+					} else {
+						this.loading = false
+					}
+				})
+			},
+			close() {
+				this.inputForm = {
+					id:'',
+					projectList:[],
+					name:'',
+					no:'',
+					projectLeader:'',
+					projectCreateDate:'',
+					createById:'',
+					createByName:'',
+					createDate:'',
+					remarks:'',
+					files: [], // 附件信息
+					types:[], //用印类型
+					number:'', //用印份数
+					projectId:'',
+				}
+				this.visible = false
+			},
+			async updateStatusById(type, callback) {
+				this.loading = true
+				if (type === 'reject' || type === 'reback') {
+					this.dimissionService.queryById(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.dimissionService.updateStatusById(param).then(() => {
+									this.loading = false
+									callback()
+								})
+							}
+						}
+					})
+				} else if (type === 'hold') {
+					this.dimissionService.queryById(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.dimissionService.updateStatusById(param).then(() => {
+								this.loading = false
+								callback()
+							})
+						}
+					})
+				}
+
+			},
+
+		}
+
+	}
+</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>

+ 66 - 15
src/views/jy/humanResources/DimissionList.vue

@@ -43,7 +43,7 @@
 			</el-form-item>
 		</el-form>
 		<div class="jp-table top" style="">
-			<vxe-toolbar :refresh="{query: refreshList}" custom>
+			<vxe-toolbar ref="userToolbar" :refresh="{query: refreshList}" export custom>
 				<template #buttons>
 					<el-button v-if="hasPermission('dimission:add')" :disabled="isAdmin" type="primary" icon="el-icon-plus" @click="add()">新建</el-button>
 				</template>
@@ -65,13 +65,23 @@
 					resizable
 					height="auto"
 					:loading="loading"
-					ref="clientTable"
+					ref="userTable"
 					show-header-overflow
 					show-overflow
 					highlight-hover-row
 					:menu-config="{}"
 					@sort-change="sortChangeHandle"
 					:sort-config="{remote:true}"
+					:export-config="{
+									remote: true,
+									filename: `离职人员信息数据${moment(
+										new Date()
+									).format('YYYY-MM-DD')}`,
+									sheetName: '离职人员信息',
+									exportMethod: exportMethod,
+									types: ['xlsx'],
+									modes: ['current', 'selected', 'all'],
+								}"
 					:data="dataList"
 					:checkbox-config="{}">
 					<vxe-column type="seq" width="60" title="序号"></vxe-column>
@@ -92,25 +102,25 @@
 					</vxe-column>
 					<vxe-column title="操作" width="150px" fixed="right" align="center">
 						<template  #default="scope">
-							<div v-if="isAdmin">
-								<el-button text type="primary" size="small" v-if="scope.row.type==='0' || scope.row.type==='5'" @click="del(scope.row.id)">删除</el-button>
-								<el-button  size="small" text type="primary"  @click="adminEdit(scope.row)">修改</el-button>
+							<div >
+								<el-button  size="small" text type="primary" v-if="hasPermission('admin:edit')"  @click="adminEdit(scope.row)">修改</el-button>
+								<el-button text type="primary" size="small" v-if="hasPermission('admin:del')" @click="del(scope.row.id)">删除</el-button>
 							</div>
-							<div v-else>
+							<div >
 <!--								<el-button v-if="hasPermission('dimission:edit') "  size="small" text type="primary"  @click="adminEdit(scope.row)">修改</el-button>-->
-								<el-button text type="primary" size="small" v-if="hasPermission('dimission:del') && scope.row.status==='0' || scope.row.status==='1'|| scope.row.status==='3'" @click="del(scope.row.id)">删除</el-button>
 								<el-button v-if="hasPermission('dimission:edit')&&(scope.row.status === '0'||scope.row.status === '1'|| scope.row.status === '3')" size="small" text type="primary"  @click="edit(scope.row)">修改</el-button>
+								<el-button text type="primary" size="small" v-if="hasPermission('dimission:del') && scope.row.status==='0' || scope.row.status==='1'|| scope.row.status==='3'" @click="del(scope.row.id)">删除</el-button>
 								<!--              当前申请人撤回-->
 								<el-button v-if="hasPermission('dimission:edit') && scope.row.createById === $store.state.user.id && scope.row.status==='2'" text type="primary" size="small" @click="reback(scope.row)">撤回</el-button>
 
 								<el-button v-if="hasPermission('dimission:edit') && scope.row.status==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examine(scope.row)">审核</el-button>
 								<el-button v-if="hasPermission('dimission:edit') && scope.row.status === '4'&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="adjust(scope.row)">驳回调整</el-button>
 
-								<el-button v-if="scope.row.status === '5'&&(scope.row.heirStatus === undefined ||scope.row.heirStatus === '' ||scope.row.heirStatus === null ||scope.row.heirStatus === '0' || scope.row.heirStatus === '1' || scope.row.heirStatus==='3')&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="heir(scope.row)">交接申请</el-button>
-								<el-button v-if="scope.row.createById === $store.state.user.id && scope.row.heirStatus==='2'" text type="primary" size="small" @click="rebackHeir(scope.row)">交接撤回</el-button>
+								<el-button v-if="hasPermission('dimission:edit') &&scope.row.status === '5'&&(scope.row.heirStatus === undefined ||scope.row.heirStatus === '' ||scope.row.heirStatus === null ||scope.row.heirStatus === '0' || scope.row.heirStatus === '1' || scope.row.heirStatus==='3')&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="heir(scope.row)">交接申请</el-button>
+								<el-button v-if="hasPermission('dimission:edit') &&scope.row.createById === $store.state.user.id && scope.row.heirStatus==='2'" text type="primary" size="small" @click="rebackHeir(scope.row)">交接撤回</el-button>
 
-								<el-button v-if="scope.row.heirStatus==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examineHeir(scope.row)">交接审核</el-button>
-								<el-button v-if="scope.row.heirStatus === '4'&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="adjustHeir(scope.row)">交接驳回调整</el-button>
+								<el-button v-if="hasPermission('dimission:edit') &&scope.row.heirStatus==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examineHeir(scope.row)">交接审核</el-button>
+								<el-button v-if="hasPermission('dimission:edit') &&scope.row.heirStatus === '4'&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="adjustHeir(scope.row)">交接驳回调整</el-button>
 							</div>
 						</template>
 					</vxe-column>
@@ -127,7 +137,7 @@
 
 			</div>
 		</div>
-	<EntryDia ref="entryDia" @refreshList="refreshList"></EntryDia>
+	<DimissionDia ref="dimissionDia" @refreshList="refreshList"></DimissionDia>
 	</div>
 
 </template>
@@ -142,7 +152,7 @@
 	import pick from 'lodash.pick'
 	import SupplierChooseForm from '@/views/materialManagement/supplier/SupplierChooseForm'
 	import UserSelectSignatory from '../workClientInfo/clientUserSelect'
-	import EntryDia from './EntryDia'
+	import DimissionDia from './DimissionDia'
 	export default {
 		data () {
 			return {
@@ -185,7 +195,7 @@
 			UserSelect,
 			SupplierChooseForm,
 			UserSelectSignatory,
-			EntryDia,
+			DimissionDia,
 
 		},
 		computed: {
@@ -198,6 +208,12 @@
 			}
 		},
 		mounted () {
+			this.$nextTick(() => {
+				// 将表格和工具栏进行关联
+				const $table = this.$refs.userTable;
+				const $toolbar = this.$refs.userToolbar;
+				$table.connect($toolbar);
+			});
 			this.refreshList()
 		},
 		activated () {
@@ -451,7 +467,7 @@
 			},
 
 			adminEdit(row){
-				this.$refs.entryDia.init('edit',row.id);
+				this.$refs.dimissionDia.init('edit',row.id);
 			},
 
 			//发起交接申请
@@ -577,6 +593,41 @@
 					})
 				})
 			},
+			// 自定义服务端导出
+			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.data.map((item) => item.id)
+							: [],
+					exportFields: options.columns.map(
+						(column) => column.property && column.property.split(".")[0]
+					),
+				};
+				this.loading = true;
+				return this.dimissionService
+					.exportExcel(params)
+					.then((data) => {
+						// 将二进制流文件写入excel表,以下为重要步骤
+						this.$utils.downloadExcel(data, options.filename);
+						this.loading = false;
+					})
+					.catch(function (err) {
+						if (err.response) {
+							console.log(err.response);
+						}
+					});
+			},
 
 
 

+ 21 - 14
src/views/jy/humanResources/EntryDia.vue

@@ -8,7 +8,7 @@
 			@close="close"
 			@keyup.enter.native=""
 			v-model="visible">
-		<el-form :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="status === 'audit' || status === 'taskFormDetail'"
+		<el-form :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="status === 'audit' || status === 'taskFormDetail'|| method === 'view'"
 				 label-width="160px" @submit.native.prevent>
 			<el-divider content-position="left"><i class="el-icon-document"></i> 基础信息</el-divider>
 			<el-row :gutter="26">
@@ -18,6 +18,11 @@
 					</el-form-item>
 				</el-col>
 				<el-col :span="12">
+					<el-form-item label="身份证号码" prop="idCard" :rules="[{required: true,validator: validator.isCardId, trigger:'blur'}]">
+						<el-input v-model="inputForm.idCard" @blur="decomposeIdCard(inputForm.idCard)"></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
 					<el-form-item label="性别" prop="sex"
 								  :rules="[
 								  	{required: true, message: '性别不能为空', trigger: 'change'}
@@ -86,11 +91,7 @@
 						<el-input  v-model="inputForm.mobilePhone" @blur="mobilePhoneOnly(inputForm.mobilePhone)"></el-input>
 					</el-form-item>
 				</el-col>
-				<el-col :span="12">
-					<el-form-item label="身份证号码" prop="idCard" :rules="[{required: true,validator: validator.isCardId, trigger:'blur'}]">
-						<el-input v-model="inputForm.idCard" @blur="decomposeIdCard(inputForm.idCard)"></el-input>
-					</el-form-item>
-				</el-col>
+
 				<el-col :span="12">
 					<el-form-item label="家庭住址" prop="homeAddress" :rules="[]">
 						<el-input v-model="inputForm.homeAddress"></el-input>
@@ -570,15 +571,18 @@
 						if (this.status === 'taskFormDetail') {
 							method = 'view'
 						}
-						this.commonApi.getTaskNameByProcInsId(data.procInsId).then((da)=> {
-							if (this.commonJS.isNotEmpty(da)) {
-								if (da === '人事审核') {
-									method = 'edit'
-								}else {
-									method = 'view'
+						if (this.commonJS.isNotEmpty(data.procInsId)){
+							this.commonApi.getTaskNameByProcInsId(data.procInsId).then((da)=> {
+								if (this.commonJS.isNotEmpty(da)) {
+									if (da === '人事审核') {
+										method = 'edit'
+									}else {
+										method = 'view'
+									}
 								}
-							}
-						})
+							})
+						}
+
 						console.log('me',method)
 						if (this.commonJS.isEmpty(this.inputForm.files)){
 							this.inputForm.files=[]
@@ -604,6 +608,9 @@
 						if (this.commonJS.isEmpty(this.inputForm.resignation)){
 							this.inputForm.resignation=[]
 						}
+						if (this.commonJS.isEmpty(this.inputForm.roleIdList)){
+							this.inputForm.roleIdList=[]
+						}
 						this.$refs.files.newUpload(method, this.inputForm.files, 'humanResources',null,'附件')
 						this.$refs.commitment.newUpload(method, this.inputForm.commitment, 'commitment',null,'承诺书')
 						this.$refs.applys.newUpload(method, this.inputForm.applys, 'applys',null,'申请表')

+ 18 - 13
src/views/jy/humanResources/EntryForm.vue

@@ -10,18 +10,23 @@
 					</el-form-item>
 				</el-col>
 				<el-col :span="12">
+					<el-form-item label="身份证号码" prop="idCard" :rules="[{required: true,validator: validator.isCardId, trigger:'blur'}]">
+						<el-input v-model="inputForm.idCard" @blur="decomposeIdCard(inputForm.idCard)"></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
 					<el-form-item label="性别" prop="sex"
 								  :rules="[
 								  	{required: true, message: '性别不能为空', trigger: 'change'}
                  ]">
 						<el-radio-group v-model="inputForm.sex">
-							<el-radio v-for="item in $dictUtils.getDictList('sex')" :label="item.value" :key="item.value">{{item.label}}</el-radio>
+							<el-radio :disabled="true" v-for="item in $dictUtils.getDictList('sex')" :label="item.value" :key="item.value">{{item.label}}</el-radio>
 						</el-radio-group>
 					</el-form-item>
 				</el-col>
 				<el-col :span="12">
 					<el-form-item label="年龄" prop="age" :rules="[{required: true, message: '年龄不能为空', trigger: 'change'}]">
-						<el-input v-model="inputForm.age" type="number"></el-input>
+						<el-input :disabled="true" v-model="inputForm.age" type="number"></el-input>
 					</el-form-item>
 				</el-col>
 				<el-col :span="12">
@@ -29,6 +34,7 @@
                   {required: true, message:'请填写出生日期', trigger: 'blur'},{required: true, message:'请填写出生日期', trigger: 'change'}
                ]">
 						<el-date-picker
+							:disabled="true"
 							style="width: 100%"
 							v-model="inputForm.birthday"
 							value-format="YYYY-MM-DD"
@@ -61,7 +67,7 @@
 					</el-form-item>
 				</el-col>
 				<el-col :span="12">
-					<el-form-item label="婚姻状况" prop="maritalStatus" :rules="[{required: true, message:'请选择婚姻状况', trigger: 'blur'}]">
+					<el-form-item label="婚姻状况" prop="maritalStatus" :rules="[{required: true, message:'请选择婚姻状况', trigger: 'change'}]">
 						<el-select v-model="inputForm.maritalStatus" placeholder="请选择婚姻状况" clearable style="width: 100%;">
 							<el-option
 								v-for="item in $dictUtils.getDictList('marital_status')"
@@ -79,11 +85,6 @@
 					</el-form-item>
 				</el-col>
 				<el-col :span="12">
-					<el-form-item label="身份证号码" prop="idCard" :rules="[{required: true,validator: validator.isCardId, trigger:'blur'}]">
-						<el-input v-model="inputForm.idCard" @blur="decomposeIdCard(inputForm.idCard)"></el-input>
-					</el-form-item>
-				</el-col>
-				<el-col :span="12">
 					<el-form-item label="家庭住址" prop="homeAddress" :rules="[]">
 						<el-input v-model="inputForm.homeAddress"></el-input>
 					</el-form-item>
@@ -312,8 +313,7 @@
 			</el-row>
 
 		</el-form>
-		<!--		附件-->
-		<UpLoadComponent ref="files"></UpLoadComponent>
+
 		<!--		承诺书-->
 		<UpLoadComponent ref="commitment"></UpLoadComponent>
 		<!--		申请表-->
@@ -328,6 +328,8 @@
 		<UpLoadComponent ref="professional"></UpLoadComponent>
 		<!--		离职证明-->
 		<UpLoadComponent ref="resignation"></UpLoadComponent>
+		<!--		附件-->
+		<UpLoadComponent ref="files"></UpLoadComponent>
 
 	</div>
 </template>
@@ -590,6 +592,9 @@
 						if (this.commonJS.isEmpty(this.inputForm.resignation)){
 							this.inputForm.resignation=[]
 						}
+						if (this.commonJS.isEmpty(this.inputForm.roleIdList)){
+							this.inputForm.roleIdList=[]
+						}
 						this.$refs.files.newUpload(method, this.inputForm.files, 'humanResources',null,'附件')
 						this.$refs.commitment.newUpload(method, this.inputForm.commitment, 'commitment',null,'承诺书')
 						this.$refs.applys.newUpload(method, this.inputForm.applys, 'applys',null,'申请表')
@@ -601,7 +606,7 @@
 						this.loading = false
 					})
 					roleService.list2({current: 1, size: -1}).then((data) => {
-						this.roleList = data.records
+						this.roleList = data
 					})
 					postService.list2({current: 1, size: -1}).then((data) => {
 						this.postList = data.records
@@ -653,8 +658,8 @@
 									}
 								}
 								let param = {type: this.inputForm.type, id: this.inputForm.id}
-								this.inputForm=JSON.stringify(this.inputForm)
-								this.entryService.saveForm(this.inputForm).then(() => {
+								this.inputForm=JSON.parse(JSON.stringify(this.inputForm))
+								this.entryService.saveForm(this.inputForm).then((data) => {
 									callback(data.businessTable, data.businessId, this.inputForm)
 									this.loading = false
 								}).catch(() => {

+ 105 - 8
src/views/jy/humanResources/EntryList.vue

@@ -65,7 +65,7 @@
 			</el-form-item>
 		</el-form>
 		<div class="jp-table top" style="">
-			<vxe-toolbar :refresh="{query: refreshList}" custom>
+			<vxe-toolbar ref="userToolbar" :refresh="{query: refreshList}" resizable import export custom>
 				<template #buttons>
 					<el-button v-if="hasPermission('entry:add')" :disabled="isAdmin" type="primary" icon="el-icon-plus" @click="add()">新建</el-button>
 				</template>
@@ -78,6 +78,14 @@
 						class="tool-btn"
 						@click="searchVisible = !searchVisible"
 					></vxe-button>
+					<vxe-button
+						type="text"
+						title="下载导入模板"
+						icon="vxe-icon-copy"
+						class="tool-btn m-l-0"
+						@click="downloadTpl()"
+					>
+					</vxe-button>
 				</template>
 			</vxe-toolbar>
 			<div style="height: calc(100% - 90px)">
@@ -87,17 +95,36 @@
 					resizable
 					height="auto"
 					:loading="loading"
-					ref="clientTable"
+					ref="userTable"
 					show-header-overflow
 					show-overflow
 					highlight-hover-row
 					:menu-config="{}"
 					@sort-change="sortChangeHandle"
 					:sort-config="{remote:true}"
+					:import-config="{
+									importMethod: importMethod,
+									types: ['csv', 'xls', 'xlsx'],
+									remote: true,
+								}"
+					:export-config="{
+									remote: true,
+									filename: `用户数据${moment(
+										new Date()
+									).format('YYYY-MM-DD')}`,
+									sheetName: '用户数据',
+									exportMethod: exportMethod,
+									types: ['xlsx'],
+									modes: ['current', 'selected', 'all'],
+								}"
 					:data="dataList"
 					:checkbox-config="{}">
 					<vxe-column type="seq" width="60" title="序号"></vxe-column>
-					<vxe-column min-width="160" align="center" title="姓名" field="name"></vxe-column>
+					<vxe-column min-width="160" align="center" title="姓名" field="name">
+						<template  #default="scope">
+							<el-link  type="primary" :underline="false"  @click="view(scope.row)">{{scope.row.name}}</el-link>
+						</template>
+					</vxe-column>
 					<vxe-column min-width="160" align="center" title="手机号" field="mobilePhone"></vxe-column>
 					<vxe-column min-width="160" align="center" title="部门" field="officeName"></vxe-column>
 					<vxe-column  min-width="150px" align="center" title="员工类型" field="onJobStatus" fixed="right">
@@ -120,16 +147,16 @@
 					</vxe-column>
 					<vxe-column title="操作" width="150px" fixed="right" align="center">
 						<template  #default="scope">
-							<div v-if="isAdmin">
-								<el-button text type="primary" size="small" v-if="scope.row.type==='0' || scope.row.type==='5'" @click="del(scope.row.id)">删除</el-button>
-								<el-button  size="small" text type="primary"  @click="adminEdit(scope.row)">修改</el-button>
+							<div >
+								<el-button  size="small" text type="primary" v-if="hasPermission('admin:edit')"  @click="adminEdit(scope.row)">修改</el-button>
+								<el-button text type="primary" size="small" v-if="hasPermission('admin:del')" @click="del(scope.row.id)">删除</el-button>
 							</div>
-							<div v-else-if="isRsb">
+							<div v-if="isRsb">
 								<el-button   size="small" text type="primary"  @click="adminEdit(scope.row)">修改</el-button>
 							</div>
 							<div v-else>
-								<el-button text type="primary" size="small" v-if="hasPermission('entry:del') && scope.row.type==='0' || scope.row.type==='1'|| scope.row.type==='3'" @click="del(scope.row.id)">删除</el-button>
 								<el-button v-if="hasPermission('entry:edit')&&(scope.row.type === '0'||scope.row.type === '1'|| scope.row.type === '3')" size="small" text type="primary"  @click="edit(scope.row)">修改</el-button>
+								<el-button text type="primary" size="small" v-if="hasPermission('entry:del') && scope.row.type==='0' || scope.row.type==='1'|| scope.row.type==='3'" @click="del(scope.row.id)">删除</el-button>
 								<!--              当前申请人撤回-->
 								<el-button v-if="hasPermission('entry:edit') && scope.row.createById === $store.state.user.id && scope.row.type==='2'" text type="primary" size="small" @click="reback(scope.row)">撤回</el-button>
 
@@ -226,6 +253,12 @@
 			}
 		},
 		mounted () {
+			this.$nextTick(() => {
+				// 将表格和工具栏进行关联
+				const $table = this.$refs.userTable;
+				const $toolbar = this.$refs.userToolbar;
+				$table.connect($toolbar);
+			});
 			this.refreshList()
 		},
 		activated () {
@@ -482,6 +515,70 @@
 				this.$refs.entryDia.init('edit',row.id);
 			},
 
+			// 下载模板
+			downloadTpl() {
+				// this.$utils.downloadExcel('/sys/user/import/template')
+				this.entryService
+					.exportTemplate()
+					.then((data) => {
+						// 将二进制流文件写入excel表,以下为重要步骤
+						this.$utils.downloadExcel(data, "用户导入模板");
+					})
+					.catch(function (err) {
+						if (err.response) {
+							console.log(err.response);
+						}
+					});
+			},
+			// 自定义服务端导入
+			importMethod({ file }) {
+				// 处理表单
+				const formBody = new FormData();
+				formBody.append("file", file);
+				this.entryService.importExcel(formBody).then((result) => {
+					this.$message.success({
+						dangerouslyUseHTMLString: true,
+						message: result,
+					});
+					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.data.map((item) => item.id)
+							: [],
+					exportFields: options.columns.map(
+						(column) => column.property && column.property.split(".")[0]
+					),
+				};
+				this.loading = true;
+				return this.entryService
+					.exportExcel(params)
+					.then((data) => {
+						// 将二进制流文件写入excel表,以下为重要步骤
+						this.$utils.downloadExcel(data, options.filename);
+						this.loading = false;
+					})
+					.catch(function (err) {
+						if (err.response) {
+							console.log(err.response);
+						}
+					});
+			},
+
 
 
 

+ 2 - 2
src/views/jy/humanResources/HeirForm.vue

@@ -1,6 +1,6 @@
 <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':''"
+		<el-form :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''" :disabled="status === 'taskFormDetail' "
 				 label-width="160px" @submit.native.prevent>
 			<el-divider content-position="left"><i class="el-icon-document"></i>
 				基本信息
@@ -238,7 +238,7 @@
 			async agreeForm(callback) {
 				console.log('进入方法')
 				this.loading = true
-				await this.dimissionService.findHeirById(this.inputForm.id).then((data) => {
+				 this.dimissionService.findHeirById(this.inputForm.id).then((data) => {
 					if (data.status !== '2' ) { // status的值不等于“审核中”,就弹出提示
 						this.loading = false
 						this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')

+ 18 - 4
src/views/jy/inscription/InscriptionForm.vue

@@ -4,7 +4,7 @@
 				 label-width="160px" @submit.native.prevent>
 			<el-divider content-position="left"><i class="el-icon-document"></i>
 				<span style="color: red;border-top: 20px">*</span>关联项目
-				<el-button style="margin-left: 20px" type="primary" :readonly="true" :disabled="status === 'audit' || status === 'taskFormDetail' || method === 'view'" @click="insertEvent('base')"  plain>
+				<el-button style="margin-left: 20px" type="primary" :readonly="true" :disabled="status === 'audit' || status === 'taskFormDetail' || method === 'view'|| inputForm.projectList.length >0" @click="insertEvent('base')"  plain>
 					新增
 				</el-button>
 			</el-divider>
@@ -30,7 +30,7 @@
 					>
 						<vxe-table-column field="name" align="center" title="项目名称" :edit-render="{}" show-overflow="title">
 							<template v-slot:edit="scope">
-								<el-input  :disabled="status === 'audit' || status === 'taskFormDetail' || method === 'view'" @focus="openProgramPageForm(scope.$rowIndex)" placeholder="请填写项目名称" :readonly="true" v-model="scope.row.name"/>
+								<el-input  :disabled="status === 'audit' || status === 'taskFormDetail' || method === 'view' " @focus="openProgramPageForm(scope.$rowIndex)" placeholder="请填写项目名称" :readonly="true" v-model="scope.row.name"/>
 							</template>
 						</vxe-table-column>
 						<vxe-table-column field="no" align="center" title="项目编号" :edit-render="{}">
@@ -162,7 +162,9 @@
 					projectList:[],
 					minister:'',
 					examiner:'',
-					approver:''
+					approver:'',
+					projectName:'',
+					no:'',
 				},
 				baseKey: '',
 				keyWatch: '',
@@ -254,6 +256,7 @@
 					// if (this.commonJS.isNotEmpty(this.inputForm.id)) {
 
 						this.inscriptionService.queryById(this.inputForm.id).then((data)=>{
+							console.log('data',data)
 							if (this.commonJS.isEmpty(this.inputForm.createName)){
 								this.inputForm.createName=this.$store.state.user.name
 							}
@@ -262,12 +265,21 @@
 							if (this.commonJS.isEmpty(this.inputForm.createTime)){
 								this.inputForm.createTime=this.moment(new Date()).format('YYYY-MM-DD')
 							}
+
 							this.inputForm = this.recover(this.inputForm, data)
-							this.inputForm.files=data.files
+							// this.inputForm.files=data.files
+
 							console.log('s',this.inputForm)
 							if (this.status === 'audit' || this.status === 'taskFormDetail') {
 								method = 'view'
 							}
+							if (this.commonJS.isEmpty(this.inputForm.projectList)){
+								this.inputForm.projectList = []
+							}
+							if (this.commonJS.isNotEmpty(this.inputForm.projectList)){
+								this.inputForm.projectName = data.projectName
+								this.inputForm.no = data.projectNo
+							}
 							console.log('me',method)
 							this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'inscription',null,null,null,null,null)
 							this.loading = false
@@ -403,6 +415,8 @@
 						this.loading = true
 						console.log('form',this.inputForm)
 						this.inscriptionService.saveForm(this.inputForm).then((data) => {
+							let processTitle = `${this.inputForm.createName} 发起了 ${this.inputForm.projectName} - ${this.inputForm.no}   ` + `[嘉溢-文印申请]`
+							this.inputForm.title = processTitle
 							callback(data.businessTable, data.businessId, this.inputForm)
 							this.$refs.inputForm.resetFields()
 							this.loading = false

+ 10 - 10
src/views/jy/inscription/InscriptionList.vue

@@ -100,19 +100,19 @@
 					</vxe-column>
 					<vxe-column title="操作" width="150px" fixed="right" align="center">
 						<template  #default="scope">
-							<div v-if="isAdmin">
-								<el-button text type="primary" size="small" v-if="scope.row.status==='0' || scope.row.status==='5'" @click="del(scope.row.id)">删除</el-button>
-								<el-button  size="small" text type="primary"  @click="adminEdit(scope.row)">修改</el-button>
+							<div >
+								<el-button  size="small" text type="primary" v-if="hasPermission('admin:edit')"  @click="adminEdit(scope.row)">修改</el-button>
+								<el-button text type="primary" size="small" v-if="hasPermission('admin:del')" @click="del(scope.row.id)">删除</el-button>
 							</div>
-							<div v-else>
-								<el-button v-if="(scope.row.status === '0'||scope.row.status === '1'|| scope.row.status === '3')" size="small" text type="primary"  @click="edit(scope.row)">修改</el-button>
-								<el-button text type="primary" size="small" v-if="scope.row.status==='0' || scope.row.status==='1'|| scope.row.status==='3'" @click="del(scope.row.id)">删除</el-button>
+							<div >
+								<el-button v-if="hasPermission('inscription:edit')&&(scope.row.status === '0'||scope.row.status === '1'|| scope.row.status === '3')" size="small" text type="primary"  @click="edit(scope.row)">修改</el-button>
+								<el-button text type="primary" size="small" v-if="hasPermission('inscription:del')&&(scope.row.status==='0' || scope.row.status==='1'|| scope.row.status==='3')" @click="del(scope.row.id)">删除</el-button>
 								<!--              当前申请人撤回-->
-								<el-button v-if="scope.row.createById === $store.state.user.id && scope.row.status==='2'" text type="primary" size="small" @click="reback(scope.row)">撤回</el-button>
+								<el-button v-if="hasPermission('inscription:edit')&&scope.row.createById === $store.state.user.id && scope.row.status==='2'" text type="primary" size="small" @click="reback(scope.row)">撤回</el-button>
 
-								<el-button v-if="scope.row.status==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examine(scope.row)">审核</el-button>
-								<el-button v-if="scope.row.status === '4'&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="adjust(scope.row)">驳回调整</el-button>
-								<el-button v-if="scope.row.status ==='5'" text type="primary" size="small" @click="outExport(scope.row)">导出</el-button>
+								<el-button v-if="hasPermission('inscription:edit')&&scope.row.status==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examine(scope.row)">审核</el-button>
+								<el-button v-if="hasPermission('inscription:edit')&&scope.row.status === '4'&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="adjust(scope.row)">驳回调整</el-button>
+								<el-button v-if="hasPermission('inscription:edit')&&scope.row.status ==='5'" text type="primary" size="small" @click="outExport(scope.row)">导出</el-button>
 							</div>
 						</template>
 					</vxe-column>

+ 7 - 7
src/views/jy/monthly/MonthlyList.vue

@@ -93,13 +93,13 @@
 					<vxe-column min-width="160" align="center" title="申请时间" field="createTime"></vxe-column>
 					<vxe-column title="操作" width="150px" fixed="right" align="center">
 						<template  #default="scope">
-							<div v-if="isAdmin">
-								<el-button  size="small" text type="primary"  @click="adminEdit(scope.row)">修改</el-button>
-								<el-button text type="primary" size="small" v-if="scope.row.status==='0' || scope.row.status==='5'" @click="del(scope.row.id)">删除</el-button>
+							<div >
+								<el-button  size="small" text type="primary" v-if="hasPermission('admin:edit')"  @click="adminEdit(scope.row)">修改</el-button>
+								<el-button text type="primary" size="small" v-if="hasPermission('admin:del')" @click="del(scope.row.id)">删除</el-button>
 							</div>
-							<div v-else>
-								<el-button  size="small" text type="primary"  @click="edit(scope.row)">修改</el-button>
-								<el-button text type="primary" size="small"  @click="del(scope.row.id)">删除</el-button>
+							<div >
+								<el-button  size="small" text type="primary" v-if="hasPermission('monthly:edit')"  @click="edit(scope.row)">修改</el-button>
+								<el-button text type="primary" size="small" v-if="hasPermission('monthly:del')"  @click="del(scope.row.id)">删除</el-button>
 							</div>
 						</template>
 					</vxe-column>
@@ -292,7 +292,7 @@
 
 
 			adminEdit(row){
-				this.$refs.inscriptionDia.init('edit',row.id);
+				this.$refs.monthlyForm.init('edit',row.id);
 			},
 			// 自定义服务端导出
 			exportMethod ({ options }) {

+ 4 - 3
src/views/jy/notify/MyNotifyList.vue

@@ -273,13 +273,14 @@
         })
       },
       handleClick (event) {
-        if (event.name === 'all') {
+      	console.log('event',event.props.name)
+        if (event.props.name === 'all') {
           this.searchForm.readFlag = ''
         }
-        if (event.name === 'read') {
+        if (event.props.name === 'read') {
           this.searchForm.readFlag = '0'
         }
-        if (event.name === 'un_read') {
+        if (event.props.name === 'un_read') {
           this.searchForm.readFlag = '1'
         }
         this.refreshList()

+ 1 - 1
src/views/jy/notify/NotifyForm.vue

@@ -423,7 +423,7 @@
             if (this.commonJS.isEmpty(this.inputForm.editorFilesDTOList)) {
               this.inputForm.editorFilesDTOList = []
             }
-			  if (this.commonJS.isEmpty(this.inputForm.createBy.id)) {
+			  if (this.commonJS.isEmpty(this.inputForm.createById)) {
 				  this.inputForm.createBy.id = this.$store.state.user.id
 				  this.inputForm.createBy.name = this.$store.state.user.name
 			  }

+ 10 - 2
src/views/jy/notify/NotifyList.vue

@@ -135,11 +135,15 @@
             <vxe-column title="操作" width="120px" fixed="right" align="center">
                 <template  #default="scope">
                   <el-button v-if="hasPermission('jy_notify:info:edit')&&(scope.row.status === '4')&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="push(scope.row)">驳回调整</el-button>
-                  <el-button v-if="(scope.row.status === '1' || scope.row.status === '3')&& (scope.row.createById === $store.state.user.id || isAdmin)" text type="primary" size="small" @click="edit(scope.row)">修改</el-button>
-                  <el-button v-if="scope.row.status === '5' && scope.row.isClose === '0' && (scope.row.createById === $store.state.user.id || isAdmin)" text type="primary" size="small" @click="close(scope.row.id)">关闭</el-button>
+                  <el-button v-if="hasPermission('jy_notify:info:edit')&&(scope.row.status === '1' || scope.row.status === '3')&& (scope.row.createById === $store.state.user.id )" text type="primary" size="small" @click="edit(scope.row)">修改</el-button>
+<!--					管理员修改-->
+                  <el-button v-if="hasPermission('admin:edit')" text type="primary" size="small" @click="adminEdit(scope.row.id)">修改</el-button>
+                  <el-button v-if="hasPermission('jy_notify:info:edit')&&scope.row.status === '5' && scope.row.isClose === '0' && (scope.row.createById === $store.state.user.id || isAdmin)" text type="primary" size="small" @click="close(scope.row.id)">关闭</el-button>
 
                   <el-button v-if="hasPermission('jy_notify:info:edit')&&(scope.row.status === '2')&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="reback(scope.row)">撤回</el-button>
                   <el-button v-if="hasPermission('jy_notify:info:del')&&(scope.row.status==='0' || scope.row.status==='1'|| scope.row.status==='3')&&(scope.row.createById === $store.state.user.id || isAdmin)"  text type="primary" size="small" @click="del(scope.row.id)">删除</el-button>
+<!--					管理员删除-->
+                  <el-button v-if="hasPermission('admin:del')"  text type="primary" size="small" @click="del(scope.row.id)">删除</el-button>
 				</template>
             </vxe-column>
         </vxe-table>
@@ -327,6 +331,10 @@
       view (id) {
         this.$refs.notifyForm.init('read', id)
       },
+		//修改
+		adminEdit (id) {
+			this.$refs.notifyForm.init('edit', id)
+		},
       // 删除
       del (id) {
         let ids = id || this.$refs.notifyTable.getCheckboxRecords().map(item => {

+ 2 - 2
src/views/jy/payment/PaymentForm.vue

@@ -140,7 +140,7 @@
 				</el-col>
 				<el-col :span="12">
 					<el-form-item label="付款方式" prop="paymentType"
-								  :rules="[{required: true, message:'请选择付款方式', trigger:'blur'}]"
+								  :rules="[{required: true, message:'请选择付款方式', trigger:'change'}]"
 					>
 						<el-select v-model="inputForm.paymentType" placeholder="请选择付款方式" clearable style="width: 100%;">
 							<el-option
@@ -332,7 +332,7 @@
 						console.log('this.inputForm.id', this.inputForm.id)
 						this.paymentService.queryById(this.inputForm.id).then((data)=>{
 							this.inputForm = this.recover(this.inputForm, data)
-							if (this.commonJS.isEmpty(data.projectDTOList)){
+							if (this.commonJS.isEmpty(this.inputForm.projectDTOList)){
 								this.inputForm.projectDTOList=[]
 							}
 							if (this.commonJS.isEmpty(this.inputForm.paymentUser)){

+ 10 - 10
src/views/jy/payment/PaymentList.vue

@@ -57,7 +57,7 @@
 		<div class="jp-table top" style="">
 			<vxe-toolbar ref="toolbarRef" :refresh="{query: refreshList}" export custom>
 				<template #buttons>
-					<el-button v-if="hasPermission('borrow:add')" :disabled="isAdmin" type="primary" icon="el-icon-plus" @click="add()">新建</el-button>
+					<el-button v-if="hasPermission('payment:add')" :disabled="isAdmin" type="primary" icon="el-icon-plus" @click="add()">新建</el-button>
 				</template>
 				<template #tools>
 					<vxe-button
@@ -115,18 +115,18 @@
 					</vxe-column>
 					<vxe-column title="操作" width="150px" fixed="right" align="center">
 						<template  #default="scope">
-							<div v-if="isAdmin">
-								<el-button  size="small" text type="primary"  @click="adminEdit(scope.row)">修改</el-button>
-								<el-button text type="primary" size="small" v-if="scope.row.status==='0' || scope.row.status==='5'" @click="del(scope.row.id)">删除</el-button>
+							<div >
+								<el-button  size="small" text type="primary" v-if="hasPermission('admin:edit')"  @click="adminEdit(scope.row)">修改</el-button>
+								<el-button text type="primary" size="small" v-if="hasPermission('admin:del')">删除</el-button>
 							</div>
-							<div v-else>
-								<el-button v-if="(scope.row.status === '0'||scope.row.status === '1'|| scope.row.status === '3')" size="small" text type="primary"  @click="edit(scope.row)">修改</el-button>
-								<el-button text type="primary" size="small" v-if="scope.row.status==='0' || scope.row.status==='1'|| scope.row.status==='3'" @click="del(scope.row.id)">删除</el-button>
+							<div >
+								<el-button v-if="hasPermission('payment:edit') &&(scope.row.status === '0'||scope.row.status === '1'|| scope.row.status === '3')" size="small" text type="primary"  @click="edit(scope.row)">修改</el-button>
+								<el-button text type="primary" size="small" v-if="hasPermission('payment:del') &&scope.row.status==='0' || scope.row.status==='1'|| scope.row.status==='3'" @click="del(scope.row.id)">删除</el-button>
 								<!--              当前申请人撤回-->
-								<el-button v-if="scope.row.createById === $store.state.user.id && scope.row.status==='2'" text type="primary" size="small" @click="reback(scope.row)">撤回</el-button>
+								<el-button v-if="hasPermission('payment:edit') &&scope.row.createById === $store.state.user.id && scope.row.status==='2'" text type="primary" size="small" @click="reback(scope.row)">撤回</el-button>
 
-								<el-button v-if="scope.row.status==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examine(scope.row)">审核</el-button>
-								<el-button v-if="scope.row.status === '4'&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="adjust(scope.row)">驳回调整</el-button>
+								<el-button v-if="hasPermission('payment:edit') &&scope.row.status==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examine(scope.row)">审核</el-button>
+								<el-button v-if="hasPermission('payment:edit') &&scope.row.status === '4'&&scope.row.createById === $store.state.user.id" text type="primary" size="small" @click="adjust(scope.row)">驳回调整</el-button>
 							</div>
 						</template>
 					</vxe-column>

+ 7 - 2
src/views/jy/project/OutInstanceForm.vue

@@ -253,7 +253,8 @@
 					fileList:[],
 					status:'',
 					projectId:'',
-					remarks:''
+					remarks:'',
+					no:''
 				},
 				keyWatch: '',
 				tabName:'',
@@ -330,7 +331,8 @@
 					fileList:[],
 					status:'',
 					projectId:'',
-					remarks:''
+					remarks:'',
+					no:''
 				}
 				this.inputForm.id = id
 				this.visible = true
@@ -364,6 +366,7 @@
 						this.inputForm.projectLeader=data.jyProjectList.leader
 						this.inputForm.projectId=data.projectId
 						this.inputForm.remarks=data.remarks
+						this.inputForm.no = data.jyProjectList.no
 						console.log('data', data)
 						if (this.status === 'audit' || this.status === 'taskFormDetail') {
 							method = 'view'
@@ -522,6 +525,8 @@
 						})
 						this.projectInfoService.saveFormOut(this.inputForm).then((data) => {
 							this.inputForm.id = data.businessId
+							let processTitle = `${this.$store.state.user.name} 发起了${this.inputForm.projectName} - ${this.inputForm.no} ` + `[嘉溢-外审申请]`
+							this.inputForm.title = processTitle
 							callback(data.businessTable, data.businessId, this.inputForm)
 							this.loading = false
 						}).catch(() => {

+ 7 - 2
src/views/jy/project/ProjectArchiveForm.vue

@@ -254,7 +254,8 @@
 					status:'',
 					projectId:'',
 					remarks:'',
-					procInsId:''
+					procInsId:'',
+					no:''
 				},
 				keyWatch: '',
 				tabName:'',
@@ -336,7 +337,8 @@
 					status:'',
 					projectId:'',
 					remarks:'',
-					procInsId:''
+					procInsId:'',
+					no:''
 				}
 				this.inputForm.id = id
 				this.visible = true
@@ -370,6 +372,7 @@
 						this.inputForm.projectLeader=data.jyProjectList.leader
 						this.inputForm.projectId=data.projectId
 						this.inputForm.remarks=data.remarks
+						this.inputForm.no = data.jyProjectList.no
 						console.log('data', data)
 						if (this.status === 'audit' || this.status === 'taskFormDetail') {
 							method = 'view'
@@ -502,6 +505,8 @@
 						})
 						this.projectInfoService.saveFormArchive(this.inputForm).then((data) => {
 							this.inputForm.id = data.businessId
+							let processTitle = `${this.inputForm.createByName} 发起了${this.inputForm.projectName} - ${this.inputForm.no} ` + `[嘉溢-项目归档]`
+							this.inputForm.title = processTitle
 							callback(data.businessTable, data.businessId, this.inputForm)
 							this.loading = false
 						}).catch(() => {

+ 29 - 14
src/views/jy/project/ProjectAuditForm.vue

@@ -18,35 +18,35 @@
 					<el-form-item label="合同名称" prop="contractName"
 								  :rules="[
 			 ]">
-						<el-input :disabled="true" v-model="inputForm.contractName" placeholder="请填写合同名称"></el-input>
+						<el-input :disabled="status === 'audit' || status === 'taskFormDetail'|| method === 'view'" v-model="inputForm.contractName" placeholder="请填写合同名称"></el-input>
 					</el-form-item>
 				</el-col>
 				<el-col :span="12">
 					<el-form-item label="合同金额(元)" prop="contractAmount"
 								  :rules="[
 			 ]">
-						  <el-input :disabled="true" v-model="inputForm.contractAmount" placeholder="请填写合同金额(元)"></el-input>
+						  <el-input :disabled="status === 'audit' || status === 'taskFormDetail'|| method === 'view'" v-model="inputForm.contractAmount" placeholder="请填写合同金额(元)"></el-input>
 					</el-form-item>
 				</el-col>
 				<el-col :span="12">
 					<el-form-item label="委托方" prop="primaryLinkman"
 								  :rules="[
 			 ]">
-						<el-input :disabled="true" v-model="inputForm.primaryLinkman" placeholder="请填写委托方"></el-input>
+						<el-input :disabled="status === 'audit' || status === 'taskFormDetail'|| method === 'view'" v-model="inputForm.primaryLinkman" placeholder="请填写委托方"></el-input>
 					</el-form-item>
 				</el-col>
 				<el-col :span="12">
 					<el-form-item label="合同类型(大类)" prop="contractTypeFirst"
 								  :rules="[
 			 ]">
-						<el-input :disabled="true" v-model="inputForm.contractTypeFirst" placeholder="请填写合同类型(大类)"></el-input>
+						<el-input :disabled="status === 'audit' || status === 'taskFormDetail'|| method === 'view'" v-model="inputForm.contractTypeFirst" placeholder="请填写合同类型(大类)"></el-input>
 					</el-form-item>
 				</el-col>
 				<el-col :span="12">
 					<el-form-item label="合同类型(小类)" prop="contractType"
 								  :rules="[
 			 ]">
-						<el-input :disabled="true" v-model="inputForm.contractType" placeholder="请填写合同类型(小类)"></el-input>
+						<el-input :disabled="status === 'audit' || status === 'taskFormDetail'|| method === 'view'" v-model="inputForm.contractType" placeholder="请填写合同类型(小类)"></el-input>
 					</el-form-item>
 				</el-col>
 			</el-row>
@@ -60,42 +60,42 @@
 					<el-form-item label="项目名称" prop="projectName"
 								  :rules="[
 			 ]">
-						<el-input :disabled="true" v-model="inputForm.projectName" placeholder="请填写项目名称"></el-input>
+						<el-input :disabled="status === 'audit' || status === 'taskFormDetail'|| method === 'view'" v-model="inputForm.projectName" placeholder="请填写项目名称"></el-input>
 					</el-form-item>
 				</el-col>
 				<el-col :span="12">
 					<el-form-item label="项目所在地" prop="projectPlace"
 								  :rules="[
 			 ]">
-						  <el-input :disabled="true" v-model="inputForm.projectPlace" placeholder="请填写项目所在地"></el-input>
+						  <el-input :disabled="status === 'audit' || status === 'taskFormDetail'|| method === 'view'" v-model="inputForm.projectPlace" placeholder="请填写项目所在地"></el-input>
 					</el-form-item>
 				</el-col>
 				<el-col :span="12">
 					<el-form-item label="建设地点" prop="buildPlace"
 								  :rules="[
 			 ]">
-						<el-input :disabled="true" v-model="inputForm.buildPlace" placeholder="请填写建设地点"></el-input>
+						<el-input :disabled="status === 'audit' || status === 'taskFormDetail'|| method === 'view'" v-model="inputForm.buildPlace" placeholder="请填写建设地点"></el-input>
 					</el-form-item>
 				</el-col>
 				<el-col :span="12">
 					<el-form-item label="项目负责人" prop="projectLeader"
 								  :rules="[
 			 ]">
-						<el-input :disabled="true" v-model="inputForm.projectLeader" placeholder="请填写项目负责人"></el-input>
+						<el-input :disabled="status === 'audit' || status === 'taskFormDetail'|| method === 'view'" v-model="inputForm.projectLeader" placeholder="请填写项目负责人"></el-input>
 					</el-form-item>
 				</el-col>
 				<el-col :span="12">
 					<el-form-item label="创建人" prop="createByName"
 								  :rules="[
 			 ]">
-						<el-input :disabled="true" v-model="inputForm.createByName" placeholder="请填写创建人"></el-input>
+						<el-input :disabled="status === 'audit' || status === 'taskFormDetail'|| method === 'view'" v-model="inputForm.createByName" placeholder="请填写创建人"></el-input>
 					</el-form-item>
 				</el-col>
 				<el-col :span="12">
 					<el-form-item label="创建时间" prop="createTime"
 								  :rules="[
 			 ]">
-						<el-input :disabled="true" v-model="inputForm.createTime" placeholder="请填写创建时间"></el-input>
+						<el-input :disabled="status === 'audit' || status === 'taskFormDetail'|| method === 'view'" v-model="inputForm.createTime" placeholder="请填写创建时间"></el-input>
 					</el-form-item>
 				</el-col>
 				<el-col :span="12" >
@@ -202,7 +202,9 @@
 					workAttachmentDtoList:[],
 					auditPeople:'',
 					status:'',
-					projectId:''
+					projectId:'',
+					no:'',
+					auditLevel:''
 				},
 				keyWatch: '',
 				tabName:'',
@@ -284,7 +286,9 @@
 					workAttachmentDtoList:[],
 					auditPeople:'',
 					status:'',
-					projectId:''
+					projectId:'',
+					no:'',
+					auditLevel:''
 				}
 				this.inputForm.id = id
 				this.visible = true
@@ -317,7 +321,9 @@
 							this.inputForm.createTime=data.jyProjectList.createTime
 							this.inputForm.projectLeader=data.jyProjectList.leader
 							this.inputForm.projectId=data.projectId
-
+							this.inputForm.auditLevel=data.auditLevel
+							this.inputForm.no = data.jyProjectList.no
+							console.log('this.inputForm',this.inputForm)
 							if (this.commonJS.isNotEmpty(this.inputForm.auditPeople)){
 								this.isEdit=true
 							}
@@ -458,6 +464,15 @@
 						this.projectInfoService.saveFormThree(this.inputForm).then((data) => {
 							this.inputForm.assignee = this.inputForm.auditPeople
 							this.inputForm.id = data.businessId
+							let processTitle = ''
+							if (this.inputForm.auditLevel === '1'){
+								processTitle = `${this.$store.state.user.name} 发起了 ${this.inputForm.projectName} - ${this.inputForm.no} ` + `[嘉溢-一级校审]`
+							}else if (this.inputForm.auditLevel === '2'){
+								processTitle = `${this.$store.state.user.name} 发起了 ${this.inputForm.projectName} - ${this.inputForm.no} ` + `[嘉溢-二级校审]`
+							}else if (this.inputForm.auditLevel === '3'){
+								processTitle = `${this.$store.state.user.name} 发起了 ${this.inputForm.projectName} - ${this.inputForm.no} ` + `[嘉溢-三级校审]`
+							}
+							this.inputForm.title = processTitle
 							callback(data.businessTable, data.businessId, this.inputForm)
 							this.loading = false
 						}).catch(() => {

+ 7 - 4
src/views/jy/project/ProjectDia.vue

@@ -742,9 +742,11 @@
 					this.inputForm.files = this.$refs.uploadComponent.getDataList()
 					JSON
 					this.projectInfoService.saveForm(this.inputForm).then((data) => {
-						this.inputForm.id = data.businessId
-						callback(data.businessTable, data.businessId, this.inputForm)
-						this.loading = false
+						// this.inputForm.id = data.businessId
+						// callback(data.businessTable, data.businessId, this.inputForm)
+						// this.loading = false
+						this.visible=false
+						this.$emit('refreshList')
 					}).catch(() => {
 						this.loading = false
 					})
@@ -880,9 +882,10 @@
 		},
 		tabHandleClick (event) {
 			let paneName = event.props.name
+			console.log('method',this.method)
 			if (paneName === 'firstAudit') {
 				if (this.commonJS.isNotEmpty(this.auditIdfirst)) {
-					this.$refs.projectThreeAuditForm.init('view', this.auditIdfirst, '一级校审')
+					this.$refs.projectThreeAuditForm.init(this.method, this.auditIdfirst, '一级校审')
 				}
 			}
 			if (paneName === 'secondAudit') {

+ 7 - 2
src/views/jy/project/ProjectEiaForm.vue

@@ -249,7 +249,8 @@
 					fileList:[],
 					status:'',
 					projectId:'',
-					remarks:''
+					remarks:'',
+					no:''
 				},
 				keyWatch: '',
 				tabName:'',
@@ -328,7 +329,8 @@
 					fileList:[],
 					status:'',
 					projectId:'',
-					remarks:''
+					remarks:'',
+					no:''
 				}
 				this.inputForm.id = id
 				this.visible = true
@@ -366,6 +368,7 @@
 						this.inputForm.projectLeader=data.jyProjectList.leader
 						this.inputForm.projectId=data.projectId
 						this.inputForm.remarks=data.remarks
+						this.inputForm.no = data.jyProjectList.no
 						console.log('data', this.inputForm)
 						if (this.status === 'taskFormDetail') {
 							method = 'view'
@@ -484,6 +487,8 @@
 						})
 						this.projectInfoService.saveFormEia(this.inputForm).then((data) => {
 							this.inputForm.id = data.businessId
+							let processTitle = `${this.$store.state.user.name} 发起了${this.inputForm.projectName} - ${this.inputForm.no} ` + `[嘉溢-环评资质申请]`
+							this.inputForm.title = processTitle
 							callback(data.businessTable, data.businessId, this.inputForm)
 							this.loading = false
 						}).catch(() => {

+ 13 - 6
src/views/jy/project/ProjectForm.vue

@@ -14,10 +14,11 @@
 						</el-radio-group>
 					</el-form-item>
 				</el-col>
-				<el-divider content-position="left"><i class="el-icon-document"></i>
-					<span style="color: red;border-top: 20px">*</span>选择合同
-				</el-divider>
+
 				<div style="width: 100%;"  v-show="inputForm.contractStatus === '1'">
+					<el-divider content-position="left"><i class="el-icon-document"></i>
+						<span style="color: red;border-top: 20px">*</span>选择合同
+					</el-divider>
 					<el-row  :gutter="15">
 					<el-col :span="12" >
 						<el-form-item label="选择合同" prop="contractName"
@@ -867,9 +868,15 @@
 			},
 			getWorkClientChoose2 (list) {
 				console.log('list',list)
-				this.inputForm.clientList.push({id: list.linkId, clientName: list.clientName,linkPhone:list.phone,linkMobile:list.mobile,position:list.position})
-				this.$refs.clientTable.insertAt({ clientName: list.name,linkPhone:list.phone,linkMobile:list.mobile,position:list.position})
-				this.clientTableKey = Math.random()
+				if (this.commonJS.isNotEmpty(list.linkId)){
+					if (this.commonJS.isEmpty(this.inputForm.clientList)) {
+						this.inputForm.clientList = []
+					}
+					this.inputForm.clientList.push({id: list.linkId, clientName: list.clientName,linkPhone:list.phone,linkMobile:list.mobile,position:list.position})
+					this.$refs.clientTable.insertAt({ clientName: list.name,linkPhone:list.phone,linkMobile:list.mobile,position:list.position})
+					this.clientTableKey = Math.random()
+				}
+
 
 				console.log('1231312',this.inputForm.clientList)
 			},

+ 3 - 3
src/views/jy/project/ProjectList.vue

@@ -227,7 +227,7 @@
 						<template  #default="scope">
 							<el-button v-if="hasPermission('jy_project:info:edit')&&(scope.row.status === '1' || scope.row.status === '3')&&scope.row.createBy === $store.state.user.id" text type="primary"  @click="registeredPush(scope.row)">修改</el-button>
 							<!--管理员角色登记完成后可修改-->
-							<el-button v-if="hasPermission('jy_project:info:edit')&&scope.row.status === '5' && isAdmin" text type="primary"  @click="adminEdit(scope.row)">修改</el-button>
+							<el-button v-if="hasPermission('admin:edit')" text type="primary"  @click="adminEdit(scope.row)">修改</el-button>
 							<!--项目负责人修改-->
 							<el-button v-if="hasPermission('jy_project:info:edit')&&scope.row.status === '5' && (scope.row.projectLeader === $store.state.user.name || (haveProjectIds.includes(scope.row.id) && scope.row.createBy !== $store.state.user.id))" text type="primary"  @click="adminEdit(scope.row)">修改</el-button>
 							<el-button v-if="hasPermission('jy_project:info:edit')&&scope.row.status === '2'&&scope.row.createBy === $store.state.user.id" text type="primary"  @click="registeredReback(scope.row)">撤回</el-button>
@@ -238,7 +238,7 @@
 
 							<el-button v-if="hasPermission('jy_project:info:del')&&(scope.row.status === '1' || scope.row.status === '3')&&(scope.row.createBy === $store.state.user.id  ||haveProjectIds.includes(scope.row.id))" text type="primary"  @click="del(scope.row.id)">删除</el-button>
 							<!--管理员角色登记完成后可删除-->
-							<el-button v-if="hasPermission('jy_project:info:del')&&scope.row.status === '5' && isAdmin" text type="primary"  @click="del(scope.row.id)">删除</el-button>
+							<el-button v-if="hasPermission('admin:del')" text type="primary"  @click="del(scope.row.id)">删除</el-button>
 
 							<!--              <el-button v-if="hasPermission('program:registered:edit')&&scope.row.status === '5' && commonJS.isEmpty(scope.row.reportNo) && scope.row.createBy === $store.state.user.id" text type="primary"  @click="saveReportNo(scope.row.id)">生成报告号</el-button>-->
 
@@ -1344,7 +1344,7 @@ export default {
 						formType: data.formType,
 						formUrl: data.formUrl,
 						formTitle: processTitle,
-						businessId: 'false',
+						businessId: row.reportsSubmitId,
 						isShow: false,
 						routePath: '/jy/project/ProjectList'
 					}

+ 2 - 1
src/views/jy/project/ProjectMemberList.vue

@@ -100,7 +100,8 @@
               $store.state.user.id === scope.row.createBy ||
               $store.state.user.id === scope.row.projectLeader || haveProjectIds.includes(scope.row.id)
               )" text type="primary"  size="small" @click="edit(scope.row.id)">编辑</el-button>
-
+<!--				管理员可编辑-->
+				<el-button v-if="hasPermission('admin:edit')" text type="primary"  size="small" @click="edit(scope.row.id)">编辑</el-button>
             </template>
           </vxe-column>
         </vxe-table>

+ 1 - 1
src/views/jy/reimbursement/ReimbursementForm.vue

@@ -1,6 +1,6 @@
 <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':''"
+		<el-form :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''" :disabled=" method==='view' || status === 'audit' ||status === 'taskFormDetail'"
 				 label-width="100px" @submit.native.prevent>
 
 			<el-divider content-position="left"><i class="el-icon-document"></i> 基础信息</el-divider>

+ 4 - 4
src/views/jy/reimbursement/ReimbursementList.vue

@@ -158,11 +158,11 @@
 
 					<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 >
+								<el-button v-if="hasPermission('admin:edit')" text type="primary" @click="editForm(scope.row)">修改</el-button>
+								<el-button v-if=" hasPermission('admin:del')" text type="primary"  @click="del(scope.row.id)">删除</el-button>
 							</div>
-							<div v-else>
+							<div >
 								<el-button v-if="hasPermission('apply: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('apply: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('apply:del') && scope.row.createById === $store.state.user.id && (scope.row.status === '1')" text type="primary"  @click="del(scope.row.id)">删除</el-button>

+ 7 - 7
src/views/jy/workClientInfo/WorkClientChooseForm.vue

@@ -14,13 +14,13 @@
         <el-form size="small" :inline="true" class="query-form m-b-10" ref="searchForm" :model="searchForm" @submit.native.prevent>
           <!-- 搜索框-->
           <el-form-item label="客户名称" prop="name">
-            <el-input size="small" v-model="searchForm.name" placeholder="客户名称" clearable></el-input>
+            <el-input size="primary" v-model="searchForm.name" placeholder="客户名称" clearable></el-input>
           </el-form-item>
           <el-form-item label="客户编号" prop="number">
-            <el-input size="small" v-model="searchForm.number" placeholder="客户编号" clearable></el-input>
+            <el-input size="primary" v-model="searchForm.number" placeholder="客户编号" clearable></el-input>
           </el-form-item>
           <el-form-item label="客户类型" prop="clientType">
-            <el-select v-model="searchForm.clientType" placeholder="请选择" style="width:100%" clearable>
+            <el-select size="primary"  v-model="searchForm.clientType" placeholder="请选择" style="width:100%" clearable>
               <el-option
                 v-for="item in $dictUtils.getDictList('customer_type')"
                 :key="item.value"
@@ -30,7 +30,7 @@
             </el-select>
           </el-form-item>
           <el-form-item label="所属行业" prop="companyIndustry">
-            <el-select v-model="searchForm.companyIndustry" placeholder="请选择" style="width:100%" clearable>
+            <el-select size="primary" v-model="searchForm.companyIndustry" placeholder="请选择" style="width:100%" clearable>
               <el-option
                 v-for="item in $dictUtils.getDictList('industry')"
                 :key="item.value"
@@ -41,9 +41,9 @@
           </el-form-item>
 
 
-          <el-form-item>
-            <el-button type="primary" @click="list()" size="small" icon="el-icon-search">查询</el-button>
-            <el-button @click="resetSearch()" size="small" icon="el-icon-refresh-right">重置</el-button>
+          <el-form-item style="margin-top: 10px">
+            <el-button type="primary" @click="list()" size="primary" icon="el-icon-search">查询</el-button>
+            <el-button @click="resetSearch()" size="primary" icon="el-icon-refresh-right">重置</el-button>
           </el-form-item>
         </el-form>
 

+ 5 - 4
src/views/jy/workClientInfo/WorkClientChooseRadio.vue

@@ -14,13 +14,13 @@
 		<el-form size="large" :inline="true" class="query-form m-b-10" ref="searchForm" :model="searchForm" @submit.native.prevent>
           <!-- 搜索框-->
           <el-form-item label="客户名称" prop="name">
-            <el-input size="large" v-model="searchForm.name" placeholder="客户名称" clearable></el-input>
+            <el-input size="primary" v-model="searchForm.name" placeholder="客户名称" clearable></el-input>
           </el-form-item>
           <el-form-item label="客户编号" prop="number">
-            <el-input size="large" v-model="searchForm.number" placeholder="客户编号" clearable></el-input>
+            <el-input size="primary" v-model="searchForm.number" placeholder="客户编号" clearable></el-input>
           </el-form-item>
           <el-form-item label="客户类型" prop="clientType">
-            <el-select v-model="searchForm.clientType" placeholder="请选择" style="width:100%" clearable>
+            <el-select size="primary" v-model="searchForm.clientType" placeholder="请选择" style="width:100%" clearable>
               <el-option
                 v-for="item in $dictUtils.getDictList('customer_type')"
                 :key="item.value"
@@ -30,7 +30,7 @@
             </el-select>
           </el-form-item>
           <el-form-item label="所属行业" prop="companyIndustry">
-            <el-select v-model="searchForm.companyIndustry" placeholder="请选择" style="width:100%;" clearable>
+            <el-select size="primary" v-model="searchForm.companyIndustry" placeholder="请选择" style="width:100%;" clearable>
               <el-option
                 v-for="item in $dictUtils.getDictList('industry')"
                 :key="item.value"
@@ -141,6 +141,7 @@
       // 表单提交
       getWorkClient () {
         let row = this.$refs.clientTable.getRadioRecord()
+		  console.log('row',row)
         if (this.commonJS.isEmpty(row)) {
           this.$message.error('请至少选择一条数据')
         } else {

+ 22 - 10
src/views/jy/workClientInfo/WorkClientForm.vue

@@ -246,6 +246,7 @@
           ref="xTable1"
           class="vxe-table-element"
           :data="bankInfos"
+			:column-config="{resizable: true}"
 		  keep-source
           style="margin-left: 5em"
           @cell-click="dbclickFun"
@@ -289,6 +290,7 @@
           ref="xTable2"
           class="vxe-table-element"
           :data="linkmanInfos"
+			:column-config="{resizable: true}"
           style="margin-left: 5em"
 		  keep-source
           @cell-click="dbclickFun"
@@ -789,6 +791,7 @@
               this.inputForm.workAttachments.push(item)
             })
             this.inputForm.workClientBank = []
+			  console.log('this.bankInfos',this.bankInfos)
             this.bankInfos.forEach((item) => {
               this.inputForm.workClientBank.push(item)
             })
@@ -796,11 +799,11 @@
             this.linkmanInfos.forEach((item) => {
               this.inputForm.workClientLinkman.push(item)
             })
-            // if (this.inputForm.workClientBank.length === 0) {
-            //   this.$message.error('开户行信息至少填写一条')
-            //   this.loading = false
-            //   return
-            // } else {
+            if (this.inputForm.workClientBank.length === 0) {
+              this.$message.error('开户行信息至少填写一条')
+              this.loading = false
+              return
+            } else {
             let flag = true
 			  console.log(this.inputForm.workClientBank)
             this.inputForm.workClientBank.forEach(item => {
@@ -825,7 +828,7 @@
             if (flag === false) {
               return
             }
-            // }
+            }
             if (this.inputForm.workClientLinkman.length === 0) {
               this.$message.error('联系人信息至少填写一条')
               this.loading = false
@@ -985,16 +988,25 @@
       // eslint-disable-next-line no-dupe-keys
       async insertEvent (type) {
         if (type === 'bank') {
-          await this.$refs.xTable1.insert().then((data) => {
-          	console.log(data)
-            this.bankInfos.push(data.row)
-          })
+        	let d={
+				ourBank: '',
+				bankNumber: '',
+				remarks: ''
+			}
+			if (this.commonJS.isEmpty(this.bankInfos)) {
+				this.bankInfos = []
+			}
+			this.$refs.xTable1.insert(d)
+			this.bankInfos.push(d)
+
         }
         if (type === 'linkman') {
           await this.$refs.xTable2.insert().then((data) => {
             this.linkmanInfos.push(data.row)
           })
+
         }
+		  this.tableKey = Math.random()
       },
       // 关闭窗口时调用
       closeXTable () {

+ 9 - 5
src/views/jy/workContractInfo/JyWorkContractList.vue

@@ -142,13 +142,15 @@
 
 					<vxe-column title="操作" width="200px" fixed="right" align="center">
 						<template  #default="scope">
-							<div v-if="isAdmin">
-								<el-button  text type="primary"  @click="editForm(scope.row)">修改</el-button>
-								<el-button  text type="primary"  @click="deleteById(scope.row.id)">删除</el-button>
-							</div>
-							<div v-else>
+<!--							<div v-if="isAdmin">-->
+<!--								<el-button  text type="primary"  @click="editForm(scope.row)">修改</el-button>-->
+<!--								<el-button  text type="primary"  @click="deleteById(scope.row.id)">删除</el-button>-->
+<!--							</div>-->
+							<div>
 								<!--归档暂存修改-->
 								<el-button v-if="hasPermission('jy_work_contract:info:edit') && scope.row.createId === $store.state.user.id && (scope.row.filedType === '0' || scope.row.filedType === '1' ||scope.row.filedType === '3')" text type="primary"  @click="updateFiled(scope.row)">修改</el-button>
+								<!--管理员修改-->
+								<el-button v-if="hasPermission('admin:edit')" text type="primary"  @click="editForm(scope.row)">修改</el-button>
 								<!--归档撤回-->
 								<el-button v-if="hasPermission('jy_work_contract:info:back') && scope.row.filedType === '2'  && scope.row.createId === $store.state.user.id" text type="primary"   @click="rebackFiled(scope.row)">撤回</el-button>
 								<!--              合同归档  审核-->
@@ -157,6 +159,8 @@
 								<el-button v-if="hasPermission('jy_work_contract:info:edit')&&scope.row.createId === $store.state.user.id&&scope.row.filedType === '4'" text type="primary"   @click="adjustFiled(scope.row)">驳回调整</el-button>
 								<!--							删除-->
 								<el-button v-if="hasPermission('jy_work_contract:info:del')&&(scope.row.filedType === '0' || scope.row.filedType === '1' || scope.row.filedType === '3') &&scope.row.createId === $store.state.user.id" text type="primary"  @click="deleteById(scope.row.id)">删除</el-button>
+								<!--							管理员删除-->
+								<el-button v-if="hasPermission('admin:del')" text type="primary"  @click="deleteById(scope.row.id)">删除</el-button>
 							</div>
 							</template>
 					</vxe-column>

+ 5 - 0
src/views/jy/workContractInfo/WorkContractForm.vue

@@ -1015,6 +1015,11 @@
 						this.loading = true
 						console.log('this.inputForm', this.inputForm)
 						this.inputForm.workAttachmentList = this.$refs.uploadComponent.getDataList()
+						if (this.inputForm.workAttachmentList.length === 0){
+							this.loading = false
+							this.$message.error('请上传附件')
+							throw new Error()
+						}
 						this.inputForm.filedType = '2'
 						console.log('3',this.inputForm)
 						if (this.commonJS.isNotEmpty(this.inputForm.contractNo)){

+ 15 - 4
src/views/materialManagement/userSeal/SignetAddForm.vue

@@ -150,6 +150,8 @@
 					number:'', //用印份数
 					projectId:'',
 					procInsId: '',
+					projectName:'',
+					typeStatus:''
 				},
 				programRow:'',
 				baseKey:'',
@@ -230,6 +232,8 @@
 					number:'', //用印份数
 					projectId:'',
 					procInsId: '',
+					projectName:'',
+					typeStatus:''
 				}
 				this.typeData.forEach(option => {
 					option.disabled = false
@@ -249,6 +253,7 @@
 							this.inputForm.projectList=list
 							this.inputForm.types=data.types
 							this.inputForm.createById=data.createById
+							this.inputForm.typeStatus = data.typeStatus
 							console.log('types',this.inputForm)
 							if (this.commonJS.isEmpty(this.inputForm.createDate)) {
 								this.inputForm.createDate = this.moment(new Date()).format('YYYY-MM-DD')
@@ -373,12 +378,18 @@
 						this.loading = true
 						this.inputForm.files = this.$refs.uploadComponent.getDataList()
 						this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
-						if (this.commonJS.isNotEmpty(this.inputForm.no)){
-							this.inputForm.types=[]
-						}
+						// if (this.commonJS.isNotEmpty(this.inputForm.no)){
+						// 	this.inputForm.types=[]
+						// }
 						this.signetService.saveForm(this.inputForm).then((data) => {
 							this.inputForm.id = data.businessId
-							let processTitle = `${this.$store.state.user.name} 发起了 ${data.no} ` + `[嘉溢-用印申请]`
+							let name = this.inputForm.projectName.substring(0,this.inputForm.projectName.lastIndexOf(","))
+							let processTitle = ''
+							if (this.inputForm.typeStatus === '1'){
+								processTitle = `${this.inputForm.createByName} 发起了${name} - ${data.no} ` + `[嘉溢-报告签发]`
+							}else if (this.inputForm.typeStatus === '2'){
+								processTitle = `${this.inputForm.createByName} 发起了${name} - ${data.no} ` + `[嘉溢-报批签发]`
+							}
 							this.inputForm.title = processTitle
 							console.log('data22', data)
 							callback(data.businessTable, data.businessId, this.inputForm)

+ 568 - 0
src/views/materialManagement/userSeal/SignetForm.vue

@@ -0,0 +1,568 @@
+<template xmlns:v-slot="http://www.w3.org/1999/XSL/Transform">
+	<div>
+		<el-dialog
+			:title="title"
+			:close-on-click-modal="false"
+			draggable
+			width="1300px"
+			@close="close"
+			@keyup.enter.native=""
+			v-model="visible">
+		<el-form :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="status === 'audit' || status === 'taskFormDetail' || method==='view'"
+				 label-width="160px" @submit.native.prevent>
+			<el-divider content-position="left"><i class="el-icon-document"></i>
+				<span style="color: red;border-top: 20px">*</span>关联项目
+				<el-button style="margin-left: 20px" type="primary" :readonly="true" :disabled="status === 'audit' || status === 'taskFormDetail' || method === 'view'" @click="insertEvent('base')"  plain>
+					新增
+				</el-button>
+			</el-divider>
+			<el-row  :gutter="15">
+				<el-col :span="24">
+					<vxe-table
+						border
+						:footer-method="footerMethod2"
+						show-overflow
+						show-footer
+						ref="baseTable"
+						:key="baseKey"
+						class="vxe-table-element"
+						:data="inputForm.projectList"
+						style="margin-left: 5em"
+						@cell-click=""
+						@edit-closed=""
+						keep-source
+						:readonly="true"
+						highlight-current-row
+						:edit-rules="tableRules"
+						:edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true, icon: '-'}"
+					>
+						<vxe-table-column field="name" align="center" title="项目名称" :edit-render="{}" show-overflow="title">
+							<template v-slot:edit="scope">
+								<el-input  :disabled="status === 'audit' || status === 'taskFormDetail' || method === 'view'" @focus="openProgramPageForm(scope.$rowIndex)" placeholder="请填写项目名称" :readonly="true" v-model="scope.row.name"/>
+							</template>
+						</vxe-table-column>
+						<vxe-table-column field="no" align="center" title="项目编号" :edit-render="{}">
+							<template v-slot:edit="scope">
+								<el-input :disabled="true" :readonly="true" placeholder="请填写项目编号" v-model="scope.row.no"/>
+							</template>
+						</vxe-table-column>
+						<vxe-table-column  field="leader" align="center" title="项目负责人" :edit-render="{}">
+							<template v-slot:edit="scope">
+								<el-input :disabled="true" placeholder="请填写项目负责人" v-model="scope.row.leader"/>
+							</template>
+						</vxe-table-column>
+						<vxe-table-column field="createTime" align="center" title="创建时间" :edit-render="{}">
+							<template v-slot:edit="scope">
+								<el-input :disabled="true" placeholder="请填写创建时间" v-model="scope.row.createTime"/>
+							</template>
+						</vxe-table-column>
+						<vxe-table-column title="操作" align="center" width="100">
+							<template v-slot="scope">
+								<el-button :disabled="status === 'audit' || status === 'taskFormDetail' || method === 'view'" type="danger" @click="removeEvent(scope.row,scope.$rowIndex,'base')">删除</el-button>
+							</template>
+						</vxe-table-column>
+					</vxe-table>
+				</el-col>
+			</el-row>
+			<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="createByName"
+								  :rules="[ ]">
+						<el-input :disabled="true" v-model="inputForm.createByName" ></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="申请时间" prop="createDate"
+								  :rules="[]">
+						<el-input :disabled="true" v-model="inputForm.createDate" ></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="用印类型" prop="types"
+								  :rules="[
+							 {required: true, message:'用印类型不能为空', trigger:'change'}
+							]">
+						<el-cascader :disabled="status === 'audit' || status === 'taskFormDetail' || method === 'view'"   style="width: 100%" v-model="inputForm.types" :options="typeData" @change="handleChange" placeholder="请选择"  clearable />
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="用印份数" prop="number"
+								  :rules="[
+							 {required: true, message:'用印份数不能为空', trigger:'blur'}
+
+							]">
+						<el-input oninput="value=value.replace(/[^\d]/g,'')" :disabled="status === 'audit' || status === 'taskFormDetail' || method === 'view'" v-model="inputForm.number" placeholder="请输入用印份数" ></el-input>
+					</el-form-item>
+				</el-col>
+
+				<el-col :span="24">
+					<el-form-item label="说明" prop="remarks"
+								  :rules="[
+                        {required: true, message:'说明不能为空', trigger:'blur'}
+               ]">
+						<el-input :disabled="status === 'audit' || status === 'taskFormDetail' || method === 'view'" type="textarea" placeholder="请输入说明"  maxlength="500"  style="width:100%" v-model="inputForm.remarks" show-word-limit></el-input>
+					</el-form-item>
+				</el-col>
+			</el-row>
+		</el-form>
+		<!--        附件-->
+		<UpLoadComponent ref="uploadComponent"></UpLoadComponent>
+		<ProjectForm ref="projectForm" @getProgram="getProgram"></ProjectForm>
+			<template #footer>
+			<span class="dialog-footer">
+			  <el-button  @click="close()" icon="el-icon-circle-close">关闭</el-button>
+			  <el-button  type="primary" v-if="method != 'view'" @click="doSubmit()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
+			</span>
+			</template>
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+	import XEUtils from 'xe-utils'
+	import SignetService from '@/api/jy/SignetService'
+	import UpLoadComponent from '@/views/common/UpLoadComponent'
+	import ProjectForm from './ProjectForm'
+	import dictService from "@/api/sys/dictService";
+	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 {
+				title: '',
+				method: '',
+				loading: false,
+				visible: false,
+				inputForm:{
+					id:'',
+					projectList:[],
+					name:'',
+					no:'',
+					projectLeader:'',
+					projectCreateDate:'',
+					createById:this.$store.state.user.id,
+					createByName:this.$store.state.user.name,
+					createDate:this.moment(new Date()).format('YYYY-MM-DD'),
+					remarks:'',
+					files: [], // 附件信息
+					types:[], //用印类型
+					number:'', //用印份数
+					projectId:'',
+					procInsId: '',
+				},
+				programRow:'',
+				baseKey:'',
+				typeData:[],
+				keyWatch: '',
+
+			}
+		},
+		SignetService: null,
+		commonApi: null,
+		created () {
+			console.log('jld ')
+			this.signetService = new SignetService()
+			this.commonApi = new CommonApi()
+			this.getTypeList()
+		},
+		mounted () {
+		},
+		activated () {
+			this.getTypeList()
+		},
+		components: {
+			UpLoadComponent,
+			ProjectForm,
+		},
+		computed: {
+			bus: {
+				get () {
+					this.$refs.uploadComponent.setDividerName('附件')
+					return this.businessId
+				},
+				set (val) {
+					this.businessId = val
+				}
+			}
+		},
+		watch: {
+			'keyWatch': {
+				handler (newVal) {
+					console.log('几里路')
+					if (this.bus) {
+						if (this.bus !== 'false') {
+							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.method = method
+				this.inputForm={
+					id:'',
+					projectList:[],
+					name:'',
+					no:'',
+					projectLeader:'',
+					projectCreateDate:'',
+					createById:'',
+					createByName:'',
+					createDate:'',
+					remarks:'',
+					files: [], // 附件信息
+					types:[], //用印类型
+					number:'', //用印份数
+					projectId:'',
+					procInsId: '',
+				}
+				this.typeData.forEach(option => {
+					option.disabled = false
+				})
+				if (method === 'add') {
+					// this.inputForm.id = 'add'
+					this.title = `新建用印信息`
+				} else if (method === 'edit') {
+					this.title = '修改用印信息'
+				} else if (method === 'view') {
+					this.title = '查看用印信息'
+				}
+				this.visible = true
+				this.inputForm.id = id
+				this.loading = false
+				this.$nextTick(() => {
+					this.$refs.inputForm.resetFields()
+					this.loading = true
+					this.$refs.uploadComponent.clearUpload()
+					if (this.commonJS.isNotEmpty(this.inputForm.id)) {
+						console.log('this.inputForm.id', this.inputForm.id)
+						this.signetService.queryById(this.inputForm.id).then((data)=>{
+							console.log('s',data)
+							this.inputForm = this.recover(this.inputForm, data)
+							var list=data.projectList
+							this.inputForm.projectList=list
+							this.inputForm.types=data.types
+							this.inputForm.createById=data.createById
+							console.log('types',this.inputForm)
+							if (this.commonJS.isEmpty(this.inputForm.createDate)) {
+								this.inputForm.createDate = this.moment(new Date()).format('YYYY-MM-DD')
+							}
+							if (this.commonJS.isEmpty(this.inputForm.projectList)) {
+								this.inputForm.projectList = []
+							}
+							if (this.status === 'audit' || this.status === 'taskFormDetail') {
+								method = 'view'
+							}
+							this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'jySeal',null, null, null, null, false)
+						})
+						this.loading = false
+					}
+				})
+			},
+			saveForm(callback) {
+				this.doSubmit('save', callback)
+			},
+			startForm(callback) {
+				this.loading = true
+				if (this.commonJS.isNotEmpty(this.inputForm.id)) {
+					this.signetService.queryById(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.signetService.queryById(this.inputForm.id).then((data) => {
+					if (data.status !== '2' ) { // status的值不等于“审核中”,就弹出提示
+						this.loading = false
+						this.$message.error('任务数据已发生改变或不存在,请在待办任务中确认此任务是否存在')
+						throw new Error()
+					} else {
+						this.inputForm.status= '2'
+						this.commonApi.getTaskNameByProcInsId(this.inputForm.procInsId).then((data)=> {
+							if (this.commonJS.isNotEmpty(data)) {
+								if (data === '总经理审核') {
+									this.inputForm.status = '5'
+								}
+							}
+							let param = {status: this.inputForm.status, id: this.inputForm.id}
+							this.inputForm = JSON.stringify(this.inputForm)
+							this.signetService.updateStatusById(param).then(() => {
+								callback(data.businessTable, data.businessId, this.inputForm)
+								this.loading = false
+							}).catch(() => {
+								this.loading = false
+							})
+						})
+					}
+				})
+			},
+			reapplyForm(callback) {
+				this.loading = true
+				console.log('this.inputForm.types',this.inputForm.types)
+				this.signetService.queryById(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
+				console.log('5',this.inputForm)
+				if (status === 'save') {
+					// 暂存
+					this.loading = true
+					this.inputForm.status = '1'
+					this.signetService.saveForm(this.inputForm).then((data) => {
+						callback(data.businessTable, data.businessId, this.inputForm)
+						this.loading = false
+					}).catch(() => {
+						this.loading = false
+					})
+					return
+				} else if (status === 'start') {
+					if (this.commonJS.isEmpty(this.inputForm.projectList)) {
+						this.$message.error('请选择关联项目')
+						this.loading = false
+					}
+					if (this.commonJS.isEmpty(this.inputForm.types)) {
+						this.$message.error('请选择用印类型')
+						this.loading = false
+					}
+					if (this.commonJS.isEmpty(this.inputForm.number)) {
+						this.$message.error('请输入用印份数')
+						this.loading = false
+					}
+					if (this.commonJS.isEmpty(this.inputForm.remarks)) {
+						this.$message.error('请输入说明')
+						this.loading = false
+					}
+					// 送审  待审核
+					this.inputForm.status = '2'
+				} else if (status === 'agree') {
+					if (this.$store.state.user.name==='leader'){
+						this.inputForm.status= '5'
+					}else {
+						this.inputForm.status= '2'
+					}
+				} 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()
+						this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
+						if (this.commonJS.isNotEmpty(this.inputForm.no)){
+							this.inputForm.types=[]
+						}
+						this.signetService.saveForm(this.inputForm).then((data) => {
+							this.visible = false
+							this.$emit('refreshList')
+						}).catch(() => {
+							this.$refs.inputForm.resetFields()
+							this.loading = false
+						})
+					} else {
+						this.loading = false
+					}
+				})
+			},
+			close() {
+				this.$refs.uploadComponent.clearUpload()
+				this.$refs.inputForm.resetFields()
+				this.inputForm = {
+					id:'',
+					projectList:[],
+					name:'',
+					no:'',
+					projectLeader:'',
+					projectCreateDate:'',
+					createById:'',
+					createByName:'',
+					createDate:'',
+					remarks:'',
+					files: [], // 附件信息
+					types:[], //用印类型
+					number:'', //用印份数
+					projectId:'',
+					procInsId: '',
+				}
+				this.visible = false
+			},
+			insertEvent(type) {
+				if (type === 'base') {
+					if (this.inputForm.projectList.length>=1){
+						if (this.commonJS.isEmpty(this.inputForm.projectList[0].projectId)){
+							this.$message.error('第一行不能为空')
+							return
+						}
+					}
+					this.$refs.baseTable.insertAt({})
+					this.inputForm.projectList.push({})
+					this.baseKey = Math.random()
+				}
+				console.log('22',this.inputForm.projectList)
+			},
+			// 删除
+			removeEvent(row, rowIndex, type) {
+				if (type === 'base') {
+					this.$refs.baseTable.remove(row)
+					this.inputForm.projectList.splice(rowIndex, 1)
+				}
+			},
+			openProgramPageForm(rowIndex) {
+				this.$refs.projectForm.init()
+				this.programRow = rowIndex
+				console.log('11',this.programRow)
+			},
+			getProgram(rows) {
+				console.log('1',rows)
+				rows.forEach((item, index) => {
+					this.inputForm.programId = item.id
+					if (index === 0) {
+						let r = this.inputForm.projectList[this.programRow]
+						r.projectId=item.id
+						r.name = item.name
+						r.no = item.no
+						r.leader = item.projectLeader
+						r.createTime = item.createTime
+						console.log('2',this.inputForm.projectList[this.programRow])
+					} else {
+						let r = {
+							projectId: item.id,
+							name: item.name,
+							no: item.no,
+							leader: item.projectLeader,
+							createTime: item.createTime,
+						}
+						this.$refs.baseTable.insertAt(r)
+						this.inputForm.projectList.push(r)
+						this.baseKey = Math.random()
+					}
+
+				})
+				this.$forceUpdate()
+				this.programRow = ''
+				// this.inputForm.reconciliationArea = this.inputForm.financeInvoiceBaseDTOList[0].location
+			},
+			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.signetService.queryById(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.signetService.updateStatusById(param).then(() => {
+										this.loading = false
+										callback()
+									})
+								}
+							}
+						})
+					} else if (type === 'hold') {
+						this.signetService.queryById(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.signetService.updateStatusById(param).then(() => {
+									this.loading = false
+									callback()
+								})
+							}
+						})
+					}
+				}
+			},
+			addRedStar(h, { column }) {
+				return [
+					h('span', { style: 'color: #F56C6C' }, '*'),
+					h('span', ' ' + column.label)
+				];
+			},
+			getTypeList(){
+				console.log(111)
+				dictService.getTypeData().then((data)=>{
+					console.log('a',data)
+					this.typeData=data
+				})
+			}
+		}
+	}
+</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>

+ 20 - 10
src/views/materialManagement/userSeal/SignetList.vue

@@ -104,17 +104,21 @@
 			</vxe-column>
           <vxe-column title="操作" width="150px" fixed="right" align="center">
             <template  #default="scope">
-              <div v-if="isAdmin">
-                <el-button text type="primary" size="small" v-if="scope.row.status==='0' || scope.row.status==='5'" @click="del(scope.row.id)">删除</el-button>
-              </div>
-              <div v-else>
-				  <el-button v-if="(scope.row.status === '1'|| scope.row.status === '3') &&(scope.row.createById === $store.state.user.id ||haveProjectIds.includes(scope.row.projectId))" size="small" text type="primary"  @click="edit(scope.row)">修改</el-button>
-				  <el-button text type="primary" size="small" v-if="(scope.row.status==='0' || scope.row.status==='1'|| scope.row.status==='3')&&(scope.row.createById === $store.state.user.id ||haveProjectIds.includes(scope.row.projectId))" @click="del(scope.row.id)">删除</el-button>
+<!--              <div v-if="isAdmin">-->
+<!--                <el-button text type="primary" size="small" v-if="scope.row.status==='0' || scope.row.status==='5'" @click="del(scope.row.id)">删除</el-button>-->
+<!--              </div>-->
+              <div>
+<!--					管理员删除-->
+				  <el-button text type="primary" size="small" v-if="hasPermission('admin:edit')" @click="adminEdit(scope.row.id)">修改</el-button>
+				  <el-button text type="primary" size="small" v-if="hasPermission('admin:del')" @click="del(scope.row.id)">删除</el-button>
+
+				  <el-button v-if="hasPermission('material:info:edit')&&(scope.row.status === '1'|| scope.row.status === '3') &&(scope.row.createById === $store.state.user.id ||haveProjectIds.includes(scope.row.projectId))" size="small" text type="primary"  @click="edit(scope.row)">修改</el-button>
+				  <el-button text type="primary" size="small" v-if="hasPermission('material:info:del')&&(scope.row.status==='0' || scope.row.status==='1'|| scope.row.status==='3')&&(scope.row.createById === $store.state.user.id ||haveProjectIds.includes(scope.row.projectId))" @click="del(scope.row.id)">删除</el-button>
 				  <!--              当前申请人撤回-->
-                <el-button v-if="(scope.row.createById === $store.state.user.id ||haveProjectIds.includes(scope.row.projectId)) && (scope.row.status==='2')" text type="primary" size="small" @click="reback(scope.row)">撤回</el-button>
+                <el-button v-if="hasPermission('material:info:edit')&&(scope.row.createById === $store.state.user.id ||haveProjectIds.includes(scope.row.projectId)) && (scope.row.status==='2')" text type="primary" size="small" @click="reback(scope.row)">撤回</el-button>
 
-                <el-button v-if="scope.row.status==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examine(scope.row)">审核</el-button>
-                <el-button v-if="scope.row.status === '4'&&(scope.row.createById === $store.state.user.id ||haveProjectIds.includes(scope.row.projectId))" text type="primary" size="small" @click="adjust(scope.row)">驳回调整</el-button>
+                <el-button v-if="hasPermission('material:info:edit')&&scope.row.status==='2' && checkIsAudit(scope.row)" text type="primary" size="small" @click="examine(scope.row)">审核</el-button>
+                <el-button v-if="hasPermission('material:info:edit')&&scope.row.status === '4'&&(scope.row.createById === $store.state.user.id ||haveProjectIds.includes(scope.row.projectId))" text type="primary" size="small" @click="adjust(scope.row)">驳回调整</el-button>
               </div>
             </template>
           </vxe-column>
@@ -146,6 +150,7 @@
 			  </el-table>
 		  </el-dialog>
 		  <ProjectDia  ref="projectDia" @refreshDataList="refreshList"></ProjectDia>
+		  <SignetForm ref="signetForm" @refreshList="refreshList"></SignetForm>
       </div>
     </div>
 
@@ -166,6 +171,7 @@
   import dictService from "@/api/sys/dictService";
   import ProjectDia from '../../jy/project/ProjectDia.vue'
   import ProjectInfoService from "@/api/jy/ProjectInfoService";
+  import SignetForm from './SignetForm'
 export default {
     data () {
       return {
@@ -211,7 +217,8 @@ export default {
       SelectTree,
       UserSelect,
       SupplierChooseForm,
-		ProjectDia
+		ProjectDia,
+		SignetForm
     },
     computed: {
       userName () {
@@ -563,6 +570,9 @@ export default {
 				}
 			})
 		},
+		adminEdit(id){
+			this.$refs.signetForm.init('edit',id)
+		}
     }
   }
 </script>