评估流程

This commit is contained in:
宋伟佳
2021-07-23 14:02:41 +08:00
parent 7fc9c31495
commit 74da433d63
4 changed files with 1538 additions and 1013 deletions
@@ -41,27 +41,6 @@
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
<!-- <el-form-item label="适用区域" prop="applyRegion" class="add-form-item form-item-disabled add-form-el-select">-->
<!--&lt;!&ndash; <el-input&ndash;&gt;-->
<!--&lt;!&ndash; v-model="listForm.applyRegion"&ndash;&gt;-->
<!--&lt;!&ndash; placeholder="请输入适用区域"&ndash;&gt;-->
<!--&lt;!&ndash; clearable&ndash;&gt;-->
<!--&lt;!&ndash; ></el-input>&ndash;&gt;-->
<!-- <el-select-->
<!-- width="120"-->
<!-- v-model="listForm.applyRegion"-->
<!-- placeholder="请选择适用区域"-->
<!-- filterable-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in countryOptions"-->
<!-- :value="item.value"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- >-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="清单说明" prop="descriptionList" class="add-form-item form-item-disabled"> <el-form-item label="清单说明" prop="descriptionList" class="add-form-item form-item-disabled">
<el-input <el-input
v-model="listForm.descriptionList" v-model="listForm.descriptionList"
@@ -69,26 +48,6 @@
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
<!-- <el-form-item label="附件" prop="modelName" class="add-form-item form-item-disabled">-->
<!-- <el-input-->
<!-- disabled-->
<!-- style="display: none;"-->
<!-- v-model="listForm.modelName"-->
<!-- clearable-->
<!-- ></el-input>-->
<!-- <div v-if="listForm.modelName" @click="fileUpload" class="fileClass">-->
<!-- {{ listForm.modelName }}-->
<!-- </div>-->
<!-- <div v-else>-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- class="common-button-primary"-->
<!-- @click="fileUpload"-->
<!-- size="mini">-->
<!-- 点击上传-->
<!-- </el-button>-->
<!-- </div>-->
<!-- </el-form-item>-->
<el-form-item label="附件" prop="fileId" class="add-form-item form-item-disabled"> <el-form-item label="附件" prop="fileId" class="add-form-item form-item-disabled">
<el-upload <el-upload
v-if="listForm.fileId == null || this.listForm.fileId== 'undefined' || this.listForm.fileId == '' " v-if="listForm.fileId == null || this.listForm.fileId== 'undefined' || this.listForm.fileId == '' "
@@ -281,21 +240,6 @@
<div class="left"> <div class="left">
<el-form :modal="sarSarAccessEOSearch" :inline="true" class="label-input-form" <el-form :modal="sarSarAccessEOSearch" :inline="true" class="label-input-form"
style="margin-left:10px"> style="margin-left:10px">
<!-- <el-form-item label="国家/地区" class="search-item search-item-last">-->
<!-- <el-select-->
<!-- v-model="sarSarAccessEOSearch.countryArea"-->
<!-- placeholder="请选择"-->
<!-- filterable-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in countryOptions"-->
<!-- :value="item.value"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- >-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="清单名称" class="search-item search-item-last"> <el-form-item label="清单名称" class="search-item search-item-last">
<el-input <el-input
v-model="sarSarAccessEOSearch.detailedListName" v-model="sarSarAccessEOSearch.detailedListName"
@@ -392,8 +336,7 @@
align="center"> align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div> <div>
{{ scope.row.updateTime ? $moment(scope.row.updateTime).format("YYYY-MM-DD {{ scope.row.updateTime ? $moment(scope.row.updateTime).format("YYYY-MM-DD hh:mm:ss") : scope.row.updateTime
hh:mm:ss") : scope.row.updateTime
}} }}
</div> </div>
</template> </template>
@@ -473,8 +416,7 @@
align="center"> align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div> <div>
{{ scope.row.updateTime ? $moment(scope.row.updateTime).format("YYYY-MM-DD {{ scope.row.updateTime ? $moment(scope.row.updateTime).format("YYYY-MM-D hh:mm:ss") : scope.row.updateTime
hh:mm:ss") : scope.row.updateTime
}} }}
</div> </div>
</template> </template>
@@ -554,8 +496,7 @@
align="center"> align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div> <div>
{{ scope.row.updateTime ? $moment(scope.row.updateTime).format("YYYY-MM-DD {{ scope.row.updateTime ? $moment(scope.row.updateTime).format("YYYY-MM-DD hh:mm:ss") : scope.row.updateTime
hh:mm:ss") : scope.row.updateTime
}} }}
</div> </div>
</template> </template>
@@ -753,7 +694,7 @@
</el-button> </el-button>
</div> </div>
</el-drawer> </el-drawer>
<el-dialog width='400px' :visible.sync="fileMadel" title="上传文件"> <el-dialog width="400px" :visible.sync="fileMadel" title="上传文件">
<el-upload <el-upload
multiple multiple
drag drag
@@ -790,7 +731,7 @@ export default {
}, },
data() { data() {
return { return {
fileUrl: 'api/att/attFile/upload', fileUrl: "api/att/attFile/upload",
fileMadel: false, fileMadel: false,
searching: false, searching: false,
// 查询选择清单相关参数 // 查询选择清单相关参数
@@ -802,8 +743,8 @@ export default {
}, },
//查询添加标准相关数据 //查询添加标准相关数据
standardSearch: { standardSearch: {
standType: '', standType: "",
standNumber:'', standNumber: "",
pageNo: 1, pageNo: 1,
pageSizeNo: this.$store.getters.userInfo.configContent pageSizeNo: this.$store.getters.userInfo.configContent
}, },
@@ -878,9 +819,9 @@ export default {
listName: "", //清单名称 listName: "", //清单名称
// applyRegion: "", //适用区域 // applyRegion: "", //适用区域
descriptionList: "", //清单说明 descriptionList: "", //清单说明
fileId:'', fileId: "",
model: '', // 上传模板 model: "", // 上传模板
modelName: '', modelName: "",
standId: "", //选择的清单的id standId: "", //选择的清单的id
signFlag: "1", //是否会签 1为会签 2为不会签 signFlag: "1", //是否会签 1为会签 2为不会签
inforlist: "", //用来存放标准列表的标准id inforlist: "", //用来存放标准列表的标准id
@@ -898,15 +839,15 @@ export default {
// countryOptions: [], //适用区域下拉框数据 // countryOptions: [], //适用区域下拉框数据
standardTypeOptions: [ standardTypeOptions: [
{ {
value: 'INLAND', value: "INLAND",
label: '国内标准法规', label: "国内标准法规",
item:'INLAND', item: "INLAND"
}, },
{ {
value: 'FOREIGN', value: "FOREIGN",
label: '海外标准法规', label: "海外标准法规",
item:'FOREIGN', item: "FOREIGN"
}, }
], ],
user1: "", user1: "",
user2: "", user2: "",
@@ -962,7 +903,7 @@ export default {
}, },
// //判断当前选中的是哪个清单 // //判断当前选中的是哪个清单
selectionList(type) { selectionList(type) {
type = this.listType type = this.listType;
if (type === "project") { if (type === "project") {
this.$http.get("sarLawsDetailedList/sar-laws-detailed-list/getAllStand", { this.$http.get("sarLawsDetailedList/sar-laws-detailed-list/getAllStand", {
page: this.page, page: this.page,
@@ -989,7 +930,7 @@ export default {
this.total = res.data.total; this.total = res.data.total;
}, e => { }, e => {
}); });
} else if(type === 'country') { } else if (type === "country") {
this.$http.get("sarLawsDetailedList/sar-laws-detailed-list/getAllStand", { this.$http.get("sarLawsDetailedList/sar-laws-detailed-list/getAllStand", {
page: this.page, page: this.page,
pageSize: this.pageSize, pageSize: this.pageSize,
@@ -1010,11 +951,11 @@ export default {
detailedListName: "" detailedListName: ""
}; };
this.standardSearch = { this.standardSearch = {
standType:'', standType: "",
standNumber: '', standNumber: ""
} };
this.selectionList(); this.selectionList();
this.addList() this.addList();
}, },
//点击添加事件 //点击添加事件
addList() { addList() {
@@ -1027,7 +968,7 @@ export default {
_this: this _this: this
}, res => { }, res => {
this.standardData = res.data.list; this.standardData = res.data.list;
this.totalNo = res.data.count this.totalNo = res.data.count;
}, e => { }, e => {
}); });
this.standModel = true; this.standModel = true;
@@ -1084,10 +1025,10 @@ export default {
//提交事件 //提交事件
handleSubmit() { handleSubmit() {
let json = this.listForm; let json = this.listForm;
this.listForm.fileId = this.fileIds.join(',') this.listForm.fileId = this.fileIds.join(",");
this.listForm.fileName = this.fileListName.join(',') this.listForm.fileName = this.fileListName.join(",");
this.listForm.model=this.listForm.fileId this.listForm.model = this.listForm.fileId;
this.listForm.modelName=this.listForm.fileName this.listForm.modelName = this.listForm.fileName;
// let json = Object.assign(this.listForm, this.roleForm) // let json = Object.assign(this.listForm, this.roleForm)
json.zrUserId = this.roleForm.dockUser; //会签人 json.zrUserId = this.roleForm.dockUser; //会签人
json.jlUserId = this.roleForm.directorUser; //业务经理 json.jlUserId = this.roleForm.directorUser; //业务经理
@@ -1131,114 +1072,114 @@ export default {
}, },
// 删除上传的文件 // 删除上传的文件
delFileInfo(file, fileList) { delFileInfo(file, fileList) {
let middle = [] let middle = [];
let files=[] let files = [];
fileList.forEach(item => { fileList.forEach(item => {
middle.push(item.name) middle.push(item.name);
files.push(item.response.data.id) files.push(item.response.data.id);
}) });
this.fileListName = middle this.fileListName = middle;
this.fileIds=files this.fileIds = files;
}, },
fileUpload() { fileUpload() {
this.fileMadel = true this.fileMadel = true;
}, },
// 上传文件成功回调 // 上传文件成功回调
uploadBackSuccess(res, file, fileList) { uploadBackSuccess(res, file, fileList) {
if (res.ok) { if (res.ok) {
let middle = [] let middle = [];
fileList.forEach(item => { fileList.forEach(item => {
middle.push(item.name) middle.push(item.name);
}) });
this.fileListName = middle this.fileListName = middle;
this.fileIds.push(file.response.data.id) this.fileIds.push(file.response.data.id);
// this.fileInfoList[this.fileInfoList.length - 1].id = res.data.id // this.fileInfoList[this.fileInfoList.length - 1].id = res.data.id
// this.$message.success('上传成功') // this.$message.success('上传成功')
} else { } else {
this.$message.error(res.message) this.$message.error(res.message);
fileList.pop() fileList.pop();
} }
}, },
// 相关附件 上传之前钩子 // 相关附件 上传之前钩子
beforeUpload(file) { beforeUpload(file) {
var filename = file.name var filename = file.name;
var index1 = filename.lastIndexOf('.') var index1 = filename.lastIndexOf(".");
var index2 = filename.length var index2 = filename.length;
var fileSuffix = filename.substring(index1, index2) var fileSuffix = filename.substring(index1, index2);
// const fileSuffix = file.name.split('.')[1] // 后缀名 // const fileSuffix = file.name.split('.')[1] // 后缀名
//把后缀转大写 //把后缀转大写
if (fileSuffix !== undefined && fileSuffix !== null) { if (fileSuffix !== undefined && fileSuffix !== null) {
fileSuffix = fileSuffix.toUpperCase() fileSuffix = fileSuffix.toUpperCase();
} }
// 判断上传文件格式 // 判断上传文件格式
if (fileSuffix === '.PDF' || fileSuffix === '.DOC' || fileSuffix === '.DOCX' || fileSuffix === '.PPT' if (fileSuffix === ".PDF" || fileSuffix === ".DOC" || fileSuffix === ".DOCX" || fileSuffix === ".PPT"
|| fileSuffix === '.PPTX'|| fileSuffix === '.XLS'|| fileSuffix === '.XLSX' || fileSuffix === ".PPTX" || fileSuffix === ".XLS" || fileSuffix === ".XLSX"
|| fileSuffix === '.PNG'|| fileSuffix === '.JPG'|| fileSuffix === '.JPEG') { || fileSuffix === ".PNG" || fileSuffix === ".JPG" || fileSuffix === ".JPEG") {
return true return true;
} else { } else {
this.$message.error('文件' + file.name + '格式不正确,请上传pdf、doc、docx、ppt、pptx、xls、xlsx、png、jpg、jpeg等文件') this.$message.error("文件" + file.name + "格式不正确,请上传pdf、doc、docx、ppt、pptx、xls、xlsx、png、jpg、jpeg等文件");
return false return false;
} }
// 判断文件上传大小 // 判断文件上传大小
if (file.size / 1024 / 1024 > 300) { if (file.size / 1024 / 1024 > 300) {
this.$message.warning('文件' + file.name + '大小不能超过300M') this.$message.warning("文件" + file.name + "大小不能超过300M");
return false return false;
} }
return true return true;
}, },
// 点击查看 // 点击查看
handlePreview(item) { handlePreview(item) {
let routeUrl = this.$router.resolve({ let routeUrl = this.$router.resolve({
name: 'OtherStandardDetails', name: "OtherStandardDetails",
params: { params: {
id: item.id, id: item.id,
pageType: 'INLAND_STAND' pageType: "INLAND_STAND"
} }
}) });
window.open(routeUrl.href, '_blank') window.open(routeUrl.href, "_blank");
}, },
// 导入标准数据成功后执行 // 导入标准数据成功后执行
importFileSuccess(response, file) { importFileSuccess(response, file) {
if (response.ok) { if (response.ok) {
this.fileMadel = false this.fileMadel = false;
this.listForm.model = response.data.id this.listForm.model = response.data.id;
this.listForm.modelName = response.data.name this.listForm.modelName = response.data.name;
this.$message({ this.$message({
showClose: true, showClose: true,
message: response.message, message: response.message,
type: 'success' type: "success"
}) });
} }
}, },
// 导入按钮 上传之前的钩子 // 导入按钮 上传之前的钩子
beginImportFile(file) { beginImportFile(file) {
var filename = file.name var filename = file.name;
var index1 = filename.lastIndexOf('.') var index1 = filename.lastIndexOf(".");
var index2 = filename.length var index2 = filename.length;
var fileSuffix = filename.substring(index1, index2) var fileSuffix = filename.substring(index1, index2);
// const fileSuffix = file.name.split('.')[1] // 后缀名 // const fileSuffix = file.name.split('.')[1] // 后缀名
// 判断上传文件格式 // 判断上传文件格式
if (fileSuffix === '.PDF' || fileSuffix === '.DOC' || fileSuffix === '.DOCX' || fileSuffix === '.PPT' if (fileSuffix === ".PDF" || fileSuffix === ".DOC" || fileSuffix === ".DOCX" || fileSuffix === ".PPT"
|| fileSuffix === '.PPTX'|| fileSuffix === '.XLS'|| fileSuffix === '.XLSX' || fileSuffix === ".PPTX" || fileSuffix === ".XLS" || fileSuffix === ".XLSX"
|| fileSuffix === '.PNG'|| fileSuffix === '.JPG'|| fileSuffix === '.JPEG' || || fileSuffix === ".PNG" || fileSuffix === ".JPG" || fileSuffix === ".JPEG" ||
fileSuffix === '.pdf' || fileSuffix === '.doc' || fileSuffix === '.docx' || fileSuffix === '.ppt' fileSuffix === ".pdf" || fileSuffix === ".doc" || fileSuffix === ".docx" || fileSuffix === ".ppt"
|| fileSuffix === '.pptx'|| fileSuffix === '.xls'|| fileSuffix === '.xlsx' || fileSuffix === ".pptx" || fileSuffix === ".xls" || fileSuffix === ".xlsx"
|| fileSuffix === '.png'|| fileSuffix === '.jpg'|| fileSuffix === '.jpeg') { || fileSuffix === ".png" || fileSuffix === ".jpg" || fileSuffix === ".jpeg") {
return true return true;
} else { } else {
this.spinShow = false this.spinShow = false;
this.$message.error('文件' + file.name + '格式不正确,请上传pdf、doc、docx、ppt、pptx、xls、xlsx、png、jpg、jpeg等文件') this.$message.error("文件" + file.name + "格式不正确,请上传pdf、doc、docx、ppt、pptx、xls、xlsx、png、jpg、jpeg等文件");
return false return false;
} }
// 判断文件上传大小 // 判断文件上传大小
// eslint-disable-next-line no-unreachable // eslint-disable-next-line no-unreachable
if (file.size / 1024 / 1024 <= 200) { if (file.size / 1024 / 1024 <= 200) {
return true return true;
} else { } else {
this.$message.error('文件' + file.name + '大小不超过200M') this.$message.error("文件" + file.name + "大小不超过200M");
return false return false;
} }
return true return true;
}, },
// beginImportFile (file) { // beginImportFile (file) {
// var filename = file.name // var filename = file.name
@@ -1272,7 +1213,7 @@ export default {
this.ListModel = false; this.ListModel = false;
}, },
typeChange(type) { typeChange(type) {
this.standardSearch.standType = type this.standardSearch.standType = type;
}, },
//添加标准取消事件 //添加标准取消事件
cancelStand() { cancelStand() {
@@ -1298,7 +1239,7 @@ export default {
_this.dataList.push(item); _this.dataList.push(item);
} }
}); });
this.standardData = [] this.standardData = [];
_this.standModel = false; _this.standModel = false;
} }
}, },
@@ -1323,15 +1264,15 @@ export default {
_this: this _this: this
}, res => { }, res => {
if (res.data == null) { if (res.data == null) {
res.data=[] res.data = [];
} }
this.dataList = res.data; this.dataList = res.data;
this.listForm.dataList = res.data; this.listForm.dataList = res.data;
let formId = [] let formId = [];
this.dataList.map(item => { this.dataList.map(item => {
formId.push(item.id) formId.push(item.id);
}); });
this.listForm.inforlist = formId.join(','); this.listForm.inforlist = formId.join(",");
}, e => { }, e => {
}); });
} else if (this.selectedList.length > 1) { } else if (this.selectedList.length > 1) {
@@ -1379,14 +1320,14 @@ export default {
this.selectionList(); this.selectionList();
}, },
pageChangeNo(page) { pageChangeNo(page) {
this.pageNo = page this.pageNo = page;
this.addList() this.addList();
}, },
pageSizeChangeNo(pageSize) { pageSizeChangeNo(pageSize) {
this.pageSizeNo = this.$store.getters.userInfo.configContent; this.pageSizeNo = this.$store.getters.userInfo.configContent;
this.addList() this.addList();
}, }
}, },
computed: {}, computed: {},
mounted() { mounted() {
@@ -51,8 +51,6 @@
row-key= "id" row-key= "id"
height="70%" height="70%"
border border
lazy
:load="load"
@selection-change="selectStandChange" @selection-change="selectStandChange"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px', :header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}" fontWeight: 'bold', height: '48px'}"
@@ -224,13 +222,6 @@ export default {
}; };
}, },
methods: { methods: {
load(tree, treeNode, resolve) {
setTimeout(() => {
resolve(
this.listForm.children
)
}, 1000)
},
processTable() { processTable() {
this.$http.get("lawss/activiti/get_list_by_instance", { this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum, prcNum: this.$route.query.prcNum,
@@ -266,32 +257,50 @@ export default {
}, },
//动态表单读取 //动态表单读取
getFormFieldList(item) { getFormFieldList(item) {
this.$nextTick(() => { const listForm = JSON.parse(JSON.stringify(item));
this.listForm = JSON.parse(JSON.stringify(item)); const { breakdownList, dataList } = listForm
item.dataList.forEach(item => { listForm.prcNum = this.prcNum;
item.hasChildren = true listForm.prcName = this.prcName;
this.listForm = listForm
listForm["id"] = item.id;
listForm.dataList = item.dataList;
dataList.forEach(stand => {
stand.hasChildren = true
console.log(stand);
const children = []
breakdownList.forEach(childItem => {
if (stand.standId === childItem.standId) {
const childItemData = {
id: childItem.id,
standId: '条款号: '+ childItem.itemsNum,
standName: '条款名称: '+ childItem.itemsName
}
children.push(childItemData)
}
}) })
this.listForm.prcNum = this.prcNum; if (children.length) {
this.listForm.prcName = this.prcName; stand.children = children
this.listForm["id"] = item.id; stand.hasChildren = true
this.listForm.dataList = item.dataList;
this.dataList = item.dataList;
this.dataList.distributePerson = item.dataList[0].distributePerson;
this.listForm.breakdownList = item.breakdownList;
this.listForm.children = item.breakdownList;
let children = []
item.breakdownList.forEach(
item=>{
let aa = {
id:item.id,
standId:'条款号: '+ item.itemsNum,
standName:'条款名称: '+ item.itemsName,
} }
children.push(aa) })
}
) // dataList.distributePerson = item.dataList[0].distributePerson;
this.listForm.children = children; // listForm.breakdownList = item.breakdownList;
}); // listForm.children = item.breakdownList;
// let children = []
// item.breakdownList.forEach(
// item=>{
// let aa = {
// id:item.id,
// standId:'条款号: '+ item.itemsNum,
// standName:'条款名称: '+ item.itemsName,
// }
// children.push(aa)
// }
// )
// this.listForm.children = children;
this.dataList = dataList
console.log(this.dataList)
}, },
//保存事件 //保存事件
handleSave() { handleSave() {
@@ -377,7 +386,8 @@ export default {
return this.processType === 1 ? "暂无待办流程" : "暂无已办流程"; return this.processType === 1 ? "暂无待办流程" : "暂无已办流程";
} }
}, },
mounted() { async mounted() {
// const res = await xx()
this.processTable(); this.processTable();
this.getData(); this.getData();
this.getTree(); this.getTree();
@@ -1,13 +1,586 @@
<template> <template>
<div class="xmpg-step3">
<ProcessHeader toggle>
<template slot="proName">项目合规评估流程-项目</template>
<template slot="proNode">责任人填写评估反馈</template>
</ProcessHeader>
<div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto">
<process-title>
<template slot="title">基础信息</template>
</process-title>
<el-form
:model="listForm"
class="label-input-form prc-content-border"
label-width="150px"
>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="项目编号" prop="projectNumber" class="add-form-item form-item-disabled">
<el-input
v-model="listForm.projectNumber"
placeholder="请输入项目编号"
clearable
></el-input>
</el-form-item>
<el-form-item label="项目名称" prop="projectName" class="add-form-item form-item-disabled">
<el-input
v-model="listForm.projectName"
placeholder="请输入项目名称"
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<process-title>
<template slot="title">填写信息</template>
</process-title>
<el-table
:data="dataList"
border
ref="selection"
height="70%"
style="width: 100%; border:1px solid #ccc"
@selection-change="selectStandChange"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="standId"
align="center"
width="200"
label="标准编号">
</el-table-column>
<el-table-column
prop="standName"
align="center"
width="200"
label="标准名称">
</el-table-column>
<el-table-column
prop="itemNum"
align="center"
width="200"
label="条款号">
</el-table-column>
<el-table-column
prop="itemsName"
width="200"
align="center"
label="条款名称">
</el-table-column>
<el-table-column
prop="xCXSSRQ"
width="200"
align="center"
label="新车型实施日期">
<template slot-scope="scope">
<span>{{ scope.row.xCXSSRQ ? $moment(scope.row.xCXSSRQ).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="zCCSSRQ"
width="200"
align="center"
label="在产车实施日期">
<template slot-scope="scope">
<span>{{ scope.row.zCCSSRQ ? $moment(scope.row.zCCSSRQ).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="productType"
align="center"
label="在研产品">
<el-table-column
prop="researchCompliance"
align="center"
width="160"
label="合规">
<template slot-scope="scope">
<el-input
v-model="dataList[scope.$index].complianceReasons"
placeholder="请输入合规原因"
>
</el-input>
</template>
</el-table-column>
<el-table-column
align="center"
width="160"
prop="researchNonCompliance"
label="不合规">
<el-table-column
prop="researchNonCompliance"
align="center"
width="160"
label="不合规项目">
<template slot-scope="scope">
<el-input
v-model="dataList[scope.$index].noCompliance"
placeholder="请输入不合规项目"
>
</el-input>
</template>
</el-table-column>
<el-table-column
prop="researchCountermeasures"
align="center"
width="160"
label="应对措施">
<template slot-scope="scope">
<el-input
v-model="dataList[scope.$index].countermeasures"
placeholder="请输入应对措施"
>
</el-input>
</template>
</el-table-column>
<el-table-column
prop="researchCompletionTime"
align="center"
width="160"
label="完成时间">
<template slot-scope="scope">
<el-date-picker
v-model="dataList[scope.$index].completionTime"
type="date"
placeholder="选择日期">
</el-date-picker>
</template>
</el-table-column>
</el-table-column>
</el-table-column>
<el-table-column
align="center"
label="在产产品">
<el-table-column
prop="productionCompliance"
align="center"
width="160"
label="合规(具体情况)">
<template slot-scope="scope">
<el-input
v-model="dataList[scope.$index].zcComplianceReasons"
placeholder="请输入合规原因"
>
</el-input>
</template>
</el-table-column>
<el-table-column
align="center"
width="160"
label="不合规">
<el-table-column
prop="productionNonCompliance"
align="center"
width="160"
label="不合规项目">
<template slot-scope="scope">
<el-input
v-model="dataList[scope.$index].zcNoCompliance"
placeholder="请输入不合规项目"
>
</el-input>
</template>
</el-table-column>
<el-table-column
prop="productionCountermeasures"
align="center"
width="160"
label="应对措施">
<template slot-scope="scope">
<el-input
v-model="dataList[scope.$index].zcCountermeasures"
placeholder="请输入应对措施"
>
</el-input>
</template>
</el-table-column>
<el-table-column
prop="productionCompletionTime"
align="center"
width="160"
label="完成时间">
<template slot-scope="scope">
<el-date-picker
v-model="dataList[scope.$index].zcCompletionTime"
type="date"
placeholder="选择日期">
</el-date-picker>
</template>
</el-table-column>
</el-table-column>
</el-table-column>
<el-table-column
fixed="right"
align="center"
width="150"
prop="implementer"
label="落实人">
</el-table-column>
</el-table>
</div>
</div>
<div class="content" v-show="active === '3'">
<div class="flow-list" style="height: 100%">
<el-table
height="100%"
ref="selection"
:data="detailData"
tooltip-effect="dark"
style="width: 100%"
border
row-key="id"
:no-data-text="listNoDataText"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
>
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="name"
label="任务步骤"
align="center"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="endTime"
label="完成时间"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? $moment(scope.row.endTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="comment"
label="审批意见"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.commentText }}</span>
</template>
</el-table-column>
<el-table-column
prop="completeFlag"
label="状态"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
<loading :loading="loading">流程列表加载中</loading>
</div>
</div>
<ProcessFooter
show-save
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
@save="handleSave"
@submit="handleSubmit"
>
</ProcessFooter>
<!-- 选择责任人-->
<Role-tree
check-box
:is-title="drawerTitle"
:is-visible.sync="modalshowflag"
@checkedRole="checkedRole"
:nodeList="nodeList"
></Role-tree>
</div>
</template> </template>
<script> <script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { inboundLiaisonDetail, queryDetail } from "api/process";
export default { export default {
name: "xmpg2Step6" name: "xmpg2Step6",
components: {
ProcessTitle,
ProcessHeader,
ProcessFooter
},
data() {
return {
hasChildren: true,
active: "1",
loading: false,
// 当前流程类型(1待办/2已办)
processType: 1,
isSubmit: false,
saveLoading: false,
showColumn: true,
drawerTitle: "", //drawer标题
modalshowflag: false, // drawer开关
selectList: [],
treeData: [], // 人员数据
roleForm: {
liablePeople: ""
},
peopleFlag: true,
nodeList: [],
defaultProps: {
children: "children",
label: "name"
},
//表单的数据
listForm: {
projectNumber: "", //项目编号
projectName: "", //项目名称
dataList: [], //项目下的标准数据
children: [], //标准下的分解单数据
},
dataList: [], //展示的标准数据
commentText: "", //审批意见
detailData: [], //流程历史数据
userId: this.$store.getters.userInfo.userId,
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId
};
},
methods: {
processTable() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum,
sortWord: this.shunxu ? this.paixu : "",
shunxu: this.shunxu
}, {
loading: "loading",
_this: this
}, res => {
this.detailData = res;
}, e => {
});
},
//tab改变
handleTabs(type) {
this.active = type;
},
//获取数据
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
console.log(res.mesg);
if (res) {
const processForm = JSON.parse(res.mesg);
this.getFormFieldList(processForm);
}
}).catch(e => {
});
});
},
//动态表单读取
getFormFieldList(item) {
this.$nextTick(() => {
this.listForm = JSON.parse(JSON.stringify(item));
this.listForm.prcNum = this.prcNum;
this.listForm.prcName = this.prcName;
this.listForm["id"] = item.id;
this.listForm.dataList = item.dataList;
console.log(item.dataList);
this.dataList = item.dataList;
this.dataList.distributePerson = item.dataList[0].distributePerson;
this.listForm.breakdownList = item.breakdownList;
});
},
//保存事件
handleSave() {
},
//提交事件
handleSubmit() {
this.listForm.dataList.forEach(item => {
if (item.liablePeople !== undefined) {
this.listForm.commentText = this.commentText;
const json = JSON.stringify(this.listForm);
console.log(json);
this.$http.post("lawss/activiti/completeTask", {
taskIds: this.taskIds,
userId: this.userId,
json: json
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message);
this.$router.push("/processCenter");
}
}, e => {
});
} else {
this.$message.warning("请选择分发负责人");
}
});
},
//批量操作按钮
batchOperation(id) {
console.log(this.selectList);
if (this.selectList.length === 0) {
this.$message.warning("请至少选择一条数据进行批量分发");
} else {
this.nodeList = [];
this.nodeList.push(id);
this.modalshowflag = true;
}
},
//标准表格选择框改变
selectStandChange(data) {
this.selectList = data;
},
getTree() {
this.$http.get("SarInstitution/institution/institutionAndUser", {}, {}, res => {
this.treeData = res.data;
});
},
drawerCheck(data) {
var getlist = this.$refs.tree.getCheckedNodes().concat(this.$refs.tree.getHalfCheckedNodes());
if (getlist.length == 1) {
this.roleRow = getlist[0];
} else {
this.$refs.tree.setCheckedKeys([data.id]);
this.roleRow = this.$refs.tree.getCheckedNodes()[0];
}
},
checkedRole(data) {
// 选取负责人时的操作
let mis = [];
this.selectList.forEach(item => {
item.liablePeople = data[0].name;
item.liablePeopleId = data[0].id;
mis.push(item.standId);
});
this.dataList.forEach(item => {
if (!mis.includes(item.standId)) {
this.selectList.push(item);
}
});
this.dataList = this.selectList;
this.$refs.selection.clearSelection();
this.modalshowflag = false;
},
cancleUserInfo() {
this.modalshowflag = false;
}
},
computed: {
listNoDataText() {
return this.processType === 1 ? "暂无待办流程" : "暂无已办流程";
}
},
mounted() {
this.processTable();
this.getData();
this.getTree();
}
}; };
</script> </script>
<style scoped> <style lang="less" scoped>
@import '~@/assets/styles/style';
.xmpg-step3 {
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
.choiceBtn {
.el-button--primary {
width: 150px;
}
}
position: relative;
height: 100%;
.headerTabs {
height: 52px;
display: flex;
align-items: center;
position: absolute;
top: 0;
right: 10px;
.headerTabsItem {
border: 1px solid #c1c1c1;
padding: 0 5px;
height: 30px;
line-height: 30px;
cursor: pointer;
}
.active {
border: 1px solid #E6A23C;
color: #fff;
background: #E6A23C;
}
}
.content {
display: flex;
flex-direction: column;
justify-content: space-between;
height: calc(~'100% - 103px');
overflow: auto;
.tableTitle {
margin-bottom: 10px;
height: 30px;
line-height: 30px;
position: relative;
font-size: 13px;
font-weight: bold;
.tableButton {
position: absolute;
right: 0;
top: 0;
}
.accessStandardsAndRegulations {
height: 100%;
}
}
}
.demo-drawer-content {
margin-top: 10px;
}
}
</style> </style>
@@ -30,10 +30,11 @@
</div> </div>
</el-card> </el-card>
<div class="action-bar"> <div class="action-bar">
<el-button plain class="common-button-primary" size="mini" @click="addList">调取</el-button> <el-button plain class="common-button-primary" v-btn-permission="'2c4366e07a5b707bf3d3f4985fb82662'" size="mini" @click="addList">调取</el-button>
<el-button plain class="common-button-primary" size="mini" @click="deleteList">批量删除</el-button> <el-button plain class="common-button-primary" v-btn-permission="'63d9a5a8f7b6a4095511394a60013eac'" size="mini" @click="deleteList">批量删除</el-button>
<el-button class="common-button-default export-button" <el-button class="common-button-default export-button"
size="mini" @click="exportStandard" size="mini" @click="exportStandard"
v-btn-permission="'ec6b73db0edd6a379d3ea90af3849861'"
title="不勾选时默认导出所有筛选项;勾选时仅导出勾选项" title="不勾选时默认导出所有筛选项;勾选时仅导出勾选项"
icon="export" icon="export"
>导出</el-button> >导出</el-button>