5 changed files with 248 additions and 82 deletions
@ -1,69 +0,0 @@ |
|||||
<template> |
|
||||
<!-- 确认模板 --> |
|
||||
<div class=''> |
|
||||
<el-dialog title="模板确认" :visible.sync="showTemplate" width="50%" :close-on-click-modal="false"> |
|
||||
<div id="luckysheet"></div> |
|
||||
<span slot="footer" class="dialog-footer"> |
|
||||
<el-button @click="handleCancel">取 消</el-button> |
|
||||
<el-button type="primary" @click="handleConfirm">确 定</el-button> |
|
||||
</span> |
|
||||
</el-dialog> |
|
||||
</div> |
|
||||
</template> |
|
||||
|
|
||||
<script> |
|
||||
import options from "@/utils/luckysheetConfig.js"; |
|
||||
|
|
||||
export default { |
|
||||
data() { |
|
||||
return {}; |
|
||||
}, |
|
||||
created() { }, |
|
||||
methods: { |
|
||||
handleCancel(){ |
|
||||
this.$emit('handelHideTemplate') |
|
||||
}, |
|
||||
handleConfirm(){ |
|
||||
this.$emit('saveLuckysheetJson',this.exportJson) |
|
||||
} |
|
||||
}, |
|
||||
mounted() { |
|
||||
console.log(this.fileUrl, 'fileUrl==='); |
|
||||
this.urlToFile('http://localhost:9001/epmet-work-pc/test1.xlsx',this.fileName) |
|
||||
this.$nextTick(() => { |
|
||||
window.luckysheet.destroy(); |
|
||||
options.title = '模板确认' |
|
||||
window.luckysheet.create({ |
|
||||
...options, |
|
||||
hook: { |
|
||||
cellEditBefore: this.handleCellEditBefore, |
|
||||
}, |
|
||||
}); |
|
||||
}) |
|
||||
|
|
||||
}, |
|
||||
props: { |
|
||||
showTemplate: { |
|
||||
type: Boolean, |
|
||||
default: false |
|
||||
}, |
|
||||
fileUrl: { |
|
||||
type: String, |
|
||||
default: '' |
|
||||
}, |
|
||||
fileName: { |
|
||||
type: String, |
|
||||
default: '' |
|
||||
}, |
|
||||
}, |
|
||||
components: {}, |
|
||||
computed: {}, |
|
||||
watch: {}, |
|
||||
} |
|
||||
</script> |
|
||||
|
|
||||
<style lang='scss' scoped> |
|
||||
#luckysheet { |
|
||||
height: 500px; |
|
||||
} |
|
||||
</style> |
|
||||
@ -0,0 +1,208 @@ |
|||||
|
<template> |
||||
|
<div style="position:relative;"> |
||||
|
<el-form v-if="showType=='adjust'" 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" c> |
||||
|
<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.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%;" :height="maxTableHeight" > |
||||
|
<el-table-column label="序号" fixed="left" type="index" align="center" width="80" /> |
||||
|
<el-table-column prop="renwu" 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'" 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"; |
||||
|
|
||||
|
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:"", |
||||
|
}; |
||||
|
}, |
||||
|
created() { }, |
||||
|
methods: { |
||||
|
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') |
||||
|
}, |
||||
|
handleConfirm(){ |
||||
|
this.$http |
||||
|
.post('/gov/org/customeragency/agencygridtree', {}) |
||||
|
.then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg) |
||||
|
} else { |
||||
|
this.$message.success("调整成功") |
||||
|
return this.$emit('handelPersonel') |
||||
|
} |
||||
|
}) |
||||
|
.catch(() => { |
||||
|
return this.$message.error('网络错误') |
||||
|
}) |
||||
|
return this.$success.error("调整成功") |
||||
|
|
||||
|
} |
||||
|
}, |
||||
|
mounted() { |
||||
|
console.log(this.showType,"sdlfkl;sdf"); |
||||
|
this.getOrgTreeList() |
||||
|
}, |
||||
|
props: { |
||||
|
acceptingId: { |
||||
|
type: String, |
||||
|
default: '' |
||||
|
}, |
||||
|
showType:{ |
||||
|
type: String, |
||||
|
default: '' |
||||
|
} |
||||
|
}, |
||||
|
components: {}, |
||||
|
computed: { |
||||
|
|
||||
|
}, |
||||
|
watch: {}, |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang='scss' scoped> |
||||
|
.dialog-footer{ |
||||
|
|
||||
|
} |
||||
|
</style> |
||||
Loading…
Reference in new issue