epmet pc工作端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

271 lines
10 KiB

<template>
<div style="position:relative;">
<el-form v-if="showType == 'adjust' || showType == 'adjust1'" ref="form" label-position="left" :model="formData"
label-width="150px" style="margin-left: 3%; margin-top: 10px;">
<el-row>
<el-col :span="24">
<el-form-item label="选择接收人员">
<el-cascader class="u-item-width-normal" size="small" ref="myCascader"
v-model="cascaderAgencyId" @change="handleChangeAgency" :options="orgOptions"
:props="orgOptionProps" :show-all-levels="false" clearable></el-cascader>
<el-select v-model.trim="formData.receiverIds" placeholder="请选择" size="small" clearable
class="cell-width-1" collapse-tags style="margin-left: 10px;" @change="changeTag">
<el-option v-for="item in workPersonnelList" :key="item.value" :label="item.name"
:value="item.staffId">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="`已选(${selfTag.length})人`">
<div>
<el-tag v-for="tag in selfTag" :key="tag.staffId" closable @close="removeTag(tag)"
style="margin-right: 10px;">
<span> {{ tag.userName?tag.userName:tag.name }}</span>
</el-tag>
</div>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-table v-if="showType == 'info'" :data="tableData" border class="m-table-item" style="width: 80%;">
<el-table-column label="序号" fixed="left" type="index" align="center" width="80" />
<el-table-column prop="userName" align="center" :show-overflow-tooltip="true" label="第一接收人">
</el-table-column>
<el-table-column prop="renwu" align="center" :show-overflow-tooltip="true" label="转派给">
</el-table-column>
</el-table>
<el-form v-if="showType == 'edit'" ref="formData " label-position="left" :model="formData" label-width="150px"
style="margin-left: 3%; margin-top: 10px;">
<el-row>
<!-- <el-form-item prop="taskTitle" label="任务主题">
<el-input v-model="formData.taskTitle" placeholder="请输入内容" clearable class="cell-width-1"></el-input>
</el-form-item> -->
<el-form-item label="任务要求" prop="taskIntroduction" style="display: block">
<el-input class="cell-width-2" type="textarea" maxlength="500" show-word-limit :rows="5"
placeholder="请输入事件内容,不超过500字" v-model.trim="formData.taskIntroduction"></el-input>
</el-form-item>
</el-row>
</el-form>
<span v-if="showType == 'adjust' || showType == 'edit' || showType == 'adjust1'" slot="footer" class="dialog-footer"
style="margin-left: 40%;">
<el-button @click="handleCancel">取 消</el-button>
<el-button type="primary" @click="handleConfirm"> </el-button>
</span>
</div>
</template>
<script>
import options from "@/utils/luckysheetConfig.js";
import { requestPost, requestGet } from "@/js/dai/request";
export default {
data() {
return {
tableData: [],
formData: {
taskTitle: '',//任务主题
taskType: '1',//任务类型
taskPeriod: 'once',//任务周期
completeLimitDay: '',//完成时限 一次性时传日期,周期性时传天数
completeLimitHour: '',//完成时限 周期或者一次性都传小时
receiverIds: '',//分发人员
moduleUrl: '',//上传模板
taskIntroduction: '',//任务要求
wordBookId: ''//工作簿id
},
workPersonnelList: [],
cascaderAgencyId: "",
orgOptions: [],
orgOptionProps: {
multiple: false,
value: 'agencyId',
label: 'agencyName',
children: 'subAgencyList',
checkStrictly: true
},
selfTag: [],
sarr: [],
agencyId: '',
agencylevel: '',
showType: "",
pageNo: 1,
pageSize: 10
};
},
created() { },
methods: {
handleConfirm() {
console.log(this.selfTag),"dsfkljdslk";
// let userIdList = this.selfTag.map(item => {
// return item.staffId
// })
// if (this.showType == "adjust") {
// let parms = {
// userIdList: userIdList,
// taskId: this.taskId,
// }
// this.updateState()
// requestPost('/actual/base/communityOneTablePeriodPublish/changeAssignWorker', parms).then(res => {
// if (res.code === 0) {
// this.$message.success('转派成功')
// return this.$emit('handelPersonel')
// } else {
// this.$message.error(res.internalMsg)
// }
// });
// } else if (this.showType == "adjust1") {
// let parms = {
// userId: userIdList.toString(),
// id: this.taskId,
// reassignedReason: ""
// }
// this.updateState()
// requestPost('/actual/base/communityOneTablePeriodPublish/reAssignWorker', parms).then(res => {
// if (res.code === 0) {
// this.$message.success('转派成功')
// return this.$emit('handelPersonel')
// } else {
// this.$message.error(res.internalMsg)
// }
// });
// }
// else {
// let parms = {
// userIdList: userIdList,
// id: this.taskId,
// taskIntroduction: this.formData.taskIntroduction
// }
// requestPost('/actual/base/communityOneTablePublish/update', parms).then(res => {
// return this.$emit('handelPersonel')
// });
// }
},
async updateState() {
const url = '/actual/base/communityOneTablePeriodPublish/update'
console.log(this.formDatas);
const { id, taskId, taskTitle, taskPeriod, taskType, taskIntroduction } = this.formDatas;
const parm = { id, taskId, taskTitle, taskPeriod, taskType, taskIntroduction }
parm.taskState = 'reassigned';
const { code, msg } = await requestPost(url, parm)
if (code === 0) {
// this.$message.success('转派成功')
} else {
console.log(msg);
}
},
getPeriodPublish() {
let parms = {
pageNo: this.pageNo,
pageSize: this.pageSize,
taskId: this.taskId,
taskNum: 0
}
requestGet('/actual/base/communityOneTablePeriodPublish/page', parms).then(res => {
this.selfTag = res.data.list
});
},
getLastItem(list, vals, key) {
let LIST = list || [];
for (let item of LIST) {
for (let i of vals) {
if (item[key] === i) {
this.sarr.push(item);
} else {
this.getLastItem(item.subAgencyList, vals, key);
}
}
}
},
removeTag(val) {
this.selfTag = this.selfTag.filter(item => item.staffId != val.staffId);
},
changeTag(val) {
let obj = this.workPersonnelList.find(item => item.staffId === val);
obj.agencyId = this.agencyId
if (obj) {
let exists = this.selfTag.some(tag => tag.agencyId === obj.agencyId);
this.selfTag.push(obj);
} else {
console.error('未找到对应的人员信息');
}
},
getStafflist() {
let parms = {
orgId: this.agencyId,
orgType: 'agency',
pageNo: 1,
pageSize: 100,
};
this.$http.post("data/aggregator/org/stafflist", parms).then((resp) => {
this.workPersonnelList = resp.data.data.staffList;
});
},
async handleChangeAgency(val) {
this.sarr = []
this.getLastItem(
this.orgOptions,
val,
"agencyId"
);
this.agencylevel = this.sarr[this.sarr.length - 1].level;
this.agencyId = this.sarr[this.sarr.length - 1].agencyId;
this.formData.receiverIds = ''
this.getStafflist()
},
getOrgTreeList() {
this.$http
.post('/gov/org/customeragency/agencygridtree', {})
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
this.orgOptions = []
this.orgOptions.push(res.data)
}
})
.catch(() => {
return this.$message.error('网络错误')
})
},
handleCancel() {
this.$emit('handelPersonel')
},
},
mounted() {
console.log(this.showType, this.taskId, "sdlfkl;sdf");
this.getOrgTreeList()
this.getPeriodPublish()
},
props: {
taskId: {
type: String,
default: ''
},
showType: {
type: String,
default: ''
},
formDatas: {
type: Object,
default: () => { }
}
},
components: {},
computed: {
},
watch: {},
}
</script>
<style lang='scss' scoped>
.dialog-footer {}
</style>