|
@@ -28,7 +28,7 @@
|
|
|
style="width: 100%"
|
|
|
v-loading="loading"
|
|
|
>
|
|
|
- <el-table-column prop="busiSubject" label="业务名称">
|
|
|
+ <el-table-column prop="demandName" label="需求名称">
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="createName" label="申请姓名">
|
|
|
</el-table-column>
|
|
@@ -237,13 +237,14 @@
|
|
|
</el-upload>
|
|
|
</div>
|
|
|
<!-- 信息补填的情况 -->
|
|
|
- <myUpload
|
|
|
+ <el-upload
|
|
|
v-if="vision == '信息补填'"
|
|
|
style="float: right; margin-bottom: 20px"
|
|
|
- @uploadBack="uploadBackin"
|
|
|
- :fileInfo="fileInfoin"
|
|
|
- :fileList="fileInfoin.fileList"
|
|
|
- ></myUpload>
|
|
|
+ action=""
|
|
|
+ :http-request="handleMessage"
|
|
|
+ :show-file-list="false"
|
|
|
+ ><el-button size="small" type="primary">导入</el-button></el-upload
|
|
|
+ >
|
|
|
<div
|
|
|
style="margin: 20px 0; padding: 0 20px"
|
|
|
v-if="vision == '信息补填'"
|
|
@@ -261,7 +262,7 @@
|
|
|
<template slot-scope="scope">
|
|
|
<el-input
|
|
|
v-model="scope.row.factoryName"
|
|
|
- :disabled="titname != '审批'"
|
|
|
+ :disabled="tableSatus === '4'"
|
|
|
></el-input>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
@@ -269,7 +270,7 @@
|
|
|
<template slot-scope="scope">
|
|
|
<el-input
|
|
|
v-model="scope.row.workLoad"
|
|
|
- :disabled="titname != '审批'"
|
|
|
+ :disabled="tableSatus === '4'"
|
|
|
></el-input>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
@@ -283,12 +284,14 @@
|
|
|
<el-button
|
|
|
size="mini"
|
|
|
type="primary"
|
|
|
+ :disabled="tableSatus === '4'"
|
|
|
@click="choline(1, scope)"
|
|
|
>添加</el-button
|
|
|
>
|
|
|
<el-button
|
|
|
size="mini"
|
|
|
type="danger"
|
|
|
+ :disabled="tableSatus === '4'"
|
|
|
@click="choline(2, scope)"
|
|
|
>删除</el-button
|
|
|
>
|
|
@@ -349,8 +352,9 @@
|
|
|
:key="index"
|
|
|
type="primary"
|
|
|
@click="handleApprove(item)"
|
|
|
- >item</el-button
|
|
|
+ >{{ item }}</el-button
|
|
|
>
|
|
|
+ <el-button @click="handleApprove('取消')">取消</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -410,6 +414,7 @@
|
|
|
:type="depttype"
|
|
|
:closeList="closeList"
|
|
|
:reset-list="treeList"
|
|
|
+ :only="only"
|
|
|
></deptTreeOnly>
|
|
|
<div class="tree treeUser">
|
|
|
<p v-for="(item, index) in treeList" :key="index">
|
|
@@ -443,7 +448,7 @@ import toolList from "../../../components/toolList";
|
|
|
import myUpload from "../../../components/upload";
|
|
|
import uploadDown from "../../../components/uploadDown.vue";
|
|
|
import deptTreeOnly from "../performance/components/deptTreeOnly.vue";
|
|
|
-
|
|
|
+const Excel = require("exceljs");
|
|
|
export default {
|
|
|
components: {
|
|
|
// mySearch,
|
|
@@ -464,28 +469,8 @@ export default {
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
- // 领导人数组
|
|
|
- leaderList: [
|
|
|
- {
|
|
|
- label: "王其侠(二级经理正职)",
|
|
|
- value: "wangqixia",
|
|
|
- },
|
|
|
- {
|
|
|
- label: "张志伟(二级经理副职)",
|
|
|
- value: "zhangzhiwei",
|
|
|
- },
|
|
|
- {
|
|
|
- label: "金鑫(二级经理副职)",
|
|
|
- value: "jinxin",
|
|
|
- },
|
|
|
- {
|
|
|
- label: "于洋(二级经理副职)",
|
|
|
- value: "yuyang01",
|
|
|
- },
|
|
|
- ],
|
|
|
- // 领导人名称
|
|
|
- leader: "",
|
|
|
- // 编号
|
|
|
+ // 操作名称
|
|
|
+ operateName: "",
|
|
|
woNo: "",
|
|
|
// 当前进行到的步骤计数
|
|
|
step: "",
|
|
@@ -501,17 +486,52 @@ export default {
|
|
|
file: [], // 附件数组
|
|
|
titname: "",
|
|
|
dialogStatus: false,
|
|
|
+ tableSatus: null,
|
|
|
number: 0,
|
|
|
// 按钮标识
|
|
|
type: "",
|
|
|
// 联系人
|
|
|
checkLaeder: false,
|
|
|
checkexa: false,
|
|
|
+ // 审核人组件只可选一人
|
|
|
+ leader: "",
|
|
|
+ leaderList: [
|
|
|
+ {
|
|
|
+ label: "王其侠(二级经理正职)",
|
|
|
+ value: "wangqixia",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "张志伟(二级经理副职)",
|
|
|
+ value: "zhangzhiwei",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "金鑫(二级经理副职)",
|
|
|
+ value: "jinxin",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "于洋(二级经理副职)",
|
|
|
+ value: "yuyang01",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ // 用来控制多选里的单选
|
|
|
+ only: false,
|
|
|
// 信息回显
|
|
|
infolist: {},
|
|
|
// 用户信息
|
|
|
userInfo: {},
|
|
|
- buttonList: [],
|
|
|
+ buttonList: [
|
|
|
+ "送部门人员审核",
|
|
|
+ "送领导审核",
|
|
|
+ "送申请人编号发送",
|
|
|
+ "确认编号",
|
|
|
+ "确认需求",
|
|
|
+ "送项目经理会签",
|
|
|
+ "送电商接口人阅办",
|
|
|
+ "送其他人办理",
|
|
|
+ "确认上线",
|
|
|
+ "已办结",
|
|
|
+ "打回",
|
|
|
+ ],
|
|
|
params: {},
|
|
|
centerDialogVisible: false,
|
|
|
messTit: "",
|
|
@@ -550,7 +570,7 @@ export default {
|
|
|
name: "否",
|
|
|
},
|
|
|
],
|
|
|
- infodatas: [{}, {}],
|
|
|
+ infodatas: [],
|
|
|
busiTime: [],
|
|
|
urgDegreeopt: [
|
|
|
{
|
|
@@ -609,10 +629,35 @@ export default {
|
|
|
handleSuccess({ file }) {
|
|
|
this.file.push(file);
|
|
|
},
|
|
|
+ handleMessage({ file }) {
|
|
|
+ const workbook = new Excel.Workbook();
|
|
|
+ // workbook.xlsx.readFile(file.path) // use path
|
|
|
+ const Array = [];
|
|
|
+ workbook.xlsx.load(file).then(async () => {
|
|
|
+ const worksheet = await workbook.getWorksheet(1);
|
|
|
+ worksheet.eachRow(({ values }) => {
|
|
|
+ let obj = {
|
|
|
+ factoryName: values[1],
|
|
|
+ workLoad: values[2],
|
|
|
+ };
|
|
|
+ Array.push(obj);
|
|
|
+ });
|
|
|
+ if (
|
|
|
+ this.infodatas.length === 1 &&
|
|
|
+ !this.infodatas[0].factoryName &&
|
|
|
+ !this.infodatas[0].workLoad
|
|
|
+ ) {
|
|
|
+ this.infodatas = Array;
|
|
|
+ } else {
|
|
|
+ this.infodatas.push(...Array);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
handleApprove(type) {
|
|
|
if (type === "取消") {
|
|
|
this.dialogStatus = false;
|
|
|
this.disableStatus = false;
|
|
|
+ this.only = false;
|
|
|
this.number++;
|
|
|
this.infolist = {};
|
|
|
return;
|
|
@@ -631,7 +676,7 @@ export default {
|
|
|
this.checkLaeder = true;
|
|
|
console.log("送领导审核");
|
|
|
break;
|
|
|
- case "送申请人编号发送":
|
|
|
+ case "送起草人编号发送":
|
|
|
this.handleSendNo();
|
|
|
break;
|
|
|
case "确认编号":
|
|
@@ -640,7 +685,199 @@ export default {
|
|
|
case "打回":
|
|
|
this.handleBackRecord();
|
|
|
break;
|
|
|
+ case "确认需求":
|
|
|
+ this.checkexa = true;
|
|
|
+ this.type = "0";
|
|
|
+ this.operateName = "确认需求";
|
|
|
+ break;
|
|
|
+ case "送项目经理会签":
|
|
|
+ this.checkexa = true;
|
|
|
+ this.type = "0";
|
|
|
+ this.operateName = "送项目经理会签";
|
|
|
+ break;
|
|
|
+ case "送电商接口人阅办":
|
|
|
+ this.operateName = "送电商接口人阅办";
|
|
|
+ this.handleDeliverReadOfficeOrOtherDo("1");
|
|
|
+ break;
|
|
|
+ case "送其他人办理":
|
|
|
+ this.checkexa = true;
|
|
|
+ this.only = true;
|
|
|
+ this.operateName = "送其他人办理";
|
|
|
+ break;
|
|
|
+ case "确认上线":
|
|
|
+ this.operateName = "确认上线";
|
|
|
+ this.handleConfirmOnline("1");
|
|
|
+ break;
|
|
|
+ case "已办结":
|
|
|
+ this.operateName = "已办结";
|
|
|
+ this.handleConfirmOnline("2");
|
|
|
+ break;
|
|
|
+ case "保存":
|
|
|
+ this.operateName = "保存";
|
|
|
+ this.handleConfirmOnline("3");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 确认上线/已办结
|
|
|
+ handleConfirmOnline(type) {
|
|
|
+ let flag = 1;
|
|
|
+ const factoryName = [];
|
|
|
+ const workLoad = [];
|
|
|
+ this.infodatas.forEach((el) => {
|
|
|
+ // 判断条件
|
|
|
+ if (el.factoryName && el.workLoad) {
|
|
|
+ flag = flag * 1;
|
|
|
+ factoryName.push(el.factoryName);
|
|
|
+ workLoad.push(el.workLoad);
|
|
|
+ } else {
|
|
|
+ flag = flag * 0;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (flag) {
|
|
|
+ let reqdata = {
|
|
|
+ operateName: this.operateName,
|
|
|
+ type,
|
|
|
+ support: factoryName,
|
|
|
+ workload: workLoad,
|
|
|
+ woNo: this.woNo + "",
|
|
|
+ };
|
|
|
+ this.$http({
|
|
|
+ url: "/market/mkOnlineChannel/confirmOnline",
|
|
|
+ method: "post",
|
|
|
+ headers: {
|
|
|
+ "Content-Type": "application/json",
|
|
|
+ },
|
|
|
+ data: reqdata,
|
|
|
+ }).then(({ data: { desc } }) => {
|
|
|
+ console.log(desc);
|
|
|
+ if (desc === "操作成功") {
|
|
|
+ this.$message.success("操作成功");
|
|
|
+ this.dialogStatus = false;
|
|
|
+ this.handleInit();
|
|
|
+ } else {
|
|
|
+ this.$message.error("操作失败");
|
|
|
}
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.$message.error("请输入必要的信息");
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 送电商接口人阅办或送其他人办理
|
|
|
+ handleDeliverReadOfficeOrOtherDo(type) {
|
|
|
+ console.log(this.operateName, type);
|
|
|
+ let receiveId = [];
|
|
|
+ let receiveName = [];
|
|
|
+ // console.log(this.treeList);
|
|
|
+ this.treeList.forEach((item) => {
|
|
|
+ receiveId.push(item.loginNoStr);
|
|
|
+ receiveName.push(item.label);
|
|
|
+ });
|
|
|
+ let reqdata = {
|
|
|
+ operateName: this.operateName,
|
|
|
+ type,
|
|
|
+ reviewOpinion: this.operateName + "," + this.remark,
|
|
|
+ woId: this.woNo + "",
|
|
|
+ };
|
|
|
+ if (type === "2") {
|
|
|
+ reqdata = {
|
|
|
+ ...reqdata,
|
|
|
+ receiveId: receiveId.join(","),
|
|
|
+ receiveName: receiveName.join(","),
|
|
|
+ };
|
|
|
+ }
|
|
|
+ console.log(reqdata);
|
|
|
+ this.$http({
|
|
|
+ url: "/market/mkOnlineChannel/deliverReadOfficeOrOtherDo",
|
|
|
+ method: "post",
|
|
|
+ headers: {
|
|
|
+ "Content-Type": "application/json",
|
|
|
+ },
|
|
|
+ data: reqdata,
|
|
|
+ }).then(({ data: { desc } }) => {
|
|
|
+ console.log(desc);
|
|
|
+ if (desc === "操作成功") {
|
|
|
+ this.$message.success("操作成功");
|
|
|
+ this.checkexa = false;
|
|
|
+ this.dialogStatus = false;
|
|
|
+ this.handleInit();
|
|
|
+ } else {
|
|
|
+ this.$message.error("操作失败");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 电商接口人阅办---送项目经理会签
|
|
|
+ handleCountersigned() {
|
|
|
+ let receiveId = [];
|
|
|
+ let receiveName = [];
|
|
|
+ console.log(this.treeList);
|
|
|
+ this.treeList.forEach((item) => {
|
|
|
+ receiveId.push(item.loginNoStr);
|
|
|
+ receiveName.push(item.label);
|
|
|
+ });
|
|
|
+ let reqdata = {
|
|
|
+ operateName: this.operateName,
|
|
|
+ receiveId: receiveId.join(","),
|
|
|
+ receiveName: receiveName.join(","),
|
|
|
+ reviewOpinion: this.operateName + "," + this.remark,
|
|
|
+ woNo: this.woNo + "",
|
|
|
+ };
|
|
|
+ console.log(reqdata);
|
|
|
+
|
|
|
+ this.$http({
|
|
|
+ url: "/market/mkOnlineChannel/countersigned",
|
|
|
+ method: "post",
|
|
|
+ headers: {
|
|
|
+ "Content-Type": "application/json",
|
|
|
+ },
|
|
|
+ data: reqdata,
|
|
|
+ }).then(({ data: { desc } }) => {
|
|
|
+ console.log(desc);
|
|
|
+ if (desc === "操作成功") {
|
|
|
+ this.$message.success("操作成功");
|
|
|
+ this.checkexa = false;
|
|
|
+ this.dialogStatus = false;
|
|
|
+ this.handleInit();
|
|
|
+ } else {
|
|
|
+ this.$message.error("操作失败");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 确认需求
|
|
|
+ handleNeedyComfirm() {
|
|
|
+ let receiveId = [];
|
|
|
+ let receiveName = [];
|
|
|
+ // console.log(this.treeList);
|
|
|
+ this.treeList.forEach((item) => {
|
|
|
+ receiveId.push(item.loginNoStr);
|
|
|
+ receiveName.push(item.label);
|
|
|
+ });
|
|
|
+ let reqdata = {
|
|
|
+ operateName: this.operateName,
|
|
|
+ receiveId: receiveId.join(","),
|
|
|
+ receiveName: receiveName.join(","),
|
|
|
+ reviewOpinion: this.operateName + "," + this.remark,
|
|
|
+ woNo: this.woNo + "",
|
|
|
+ };
|
|
|
+ console.log(reqdata);
|
|
|
+
|
|
|
+ this.$http({
|
|
|
+ url: "/market/mkOnlineChannel/confirmDemand",
|
|
|
+ method: "post",
|
|
|
+ headers: {
|
|
|
+ "Content-Type": "application/json",
|
|
|
+ },
|
|
|
+ data: reqdata,
|
|
|
+ }).then(({ data: { desc } }) => {
|
|
|
+ console.log(desc);
|
|
|
+ if (desc === "操作成功") {
|
|
|
+ this.$message.success("操作成功");
|
|
|
+ this.checkexa = false;
|
|
|
+ this.dialogStatus = false;
|
|
|
+ this.handleInit();
|
|
|
+ } else {
|
|
|
+ this.$message.error("操作失败");
|
|
|
}
|
|
|
});
|
|
|
},
|
|
@@ -689,6 +926,7 @@ export default {
|
|
|
woNo: this.infolist.woNo,
|
|
|
createId: this.infolist.createId,
|
|
|
createName: this.infolist.createName,
|
|
|
+ id: this.infolist.id,
|
|
|
};
|
|
|
}
|
|
|
let params = {
|
|
@@ -742,6 +980,18 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
+ if (this.operateName === "确认需求") {
|
|
|
+ this.handleNeedyComfirm();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (this.operateName === "送项目经理会签") {
|
|
|
+ this.handleCountersigned();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (this.operateName === "送其他人办理") {
|
|
|
+ this.handleDeliverReadOfficeOrOtherDo("2");
|
|
|
+ return;
|
|
|
+ }
|
|
|
request = 1;
|
|
|
if (request) {
|
|
|
this.$http({
|
|
@@ -768,7 +1018,7 @@ export default {
|
|
|
});
|
|
|
}
|
|
|
},
|
|
|
- // 送申请人编号发送
|
|
|
+ // 送起草人编号发送
|
|
|
handleSendNo() {
|
|
|
this.$http({
|
|
|
url: "/market/mkOnlineChannel/createDemandNo",
|
|
@@ -798,7 +1048,7 @@ export default {
|
|
|
headers: {
|
|
|
"Content-Type": "application/json",
|
|
|
},
|
|
|
- data: this.woNo,
|
|
|
+ data: { woNo: this.woNo + "" },
|
|
|
}).then(({ data: { desc } }) => {
|
|
|
console.log(desc);
|
|
|
if (desc === "操作成功") {
|
|
@@ -844,9 +1094,10 @@ export default {
|
|
|
}).then(
|
|
|
({
|
|
|
data: {
|
|
|
- body: { mkOnlineChannel },
|
|
|
+ body: { button, mkOnlineChannel },
|
|
|
},
|
|
|
}) => {
|
|
|
+ this.buttonList = button;
|
|
|
this.infolist = {
|
|
|
...mkOnlineChannel,
|
|
|
carryChannelCode: mkOnlineChannel.carryChannelCode.split(","),
|
|
@@ -855,7 +1106,7 @@ export default {
|
|
|
mkOnlineChannel.busiStartTime,
|
|
|
mkOnlineChannel.busiEndTime,
|
|
|
];
|
|
|
- // this.rovaList = mkOnlineChannel.logList;
|
|
|
+ this.rovaList = mkOnlineChannel.logList;
|
|
|
this.datalist = {
|
|
|
...this.datalist,
|
|
|
attList: mkOnlineChannel.attList,
|
|
@@ -864,20 +1115,46 @@ export default {
|
|
|
this.woNo = mkOnlineChannel.woNo;
|
|
|
// 步骤
|
|
|
this.step = mkOnlineChannel.step;
|
|
|
- // 数组回显
|
|
|
- this.infodatas = mkOnlineChannel.logList;
|
|
|
+ // 最后一步是否办结
|
|
|
+ this.tableSatus = mkOnlineChannel.sts;
|
|
|
this.dialogStatus = true;
|
|
|
if (this.titname === "添加") {
|
|
|
// 审批说明
|
|
|
this.visionsts = "";
|
|
|
this.disableStatus = false;
|
|
|
} else {
|
|
|
- // this.disableStatus = true;
|
|
|
- this.disableStatus = true;
|
|
|
if (this.titname === "查看") {
|
|
|
+ this.disableStatus = true;
|
|
|
this.visionsts = "";
|
|
|
+ // 数组回显
|
|
|
+ this.infodatas = mkOnlineChannel.logList;
|
|
|
} else {
|
|
|
- this.visionsts = "2";
|
|
|
+ if (this.step === "0") {
|
|
|
+ this.dialogStatus = false;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.dialogStatus = true;
|
|
|
+ if (this.step === "7") {
|
|
|
+ if (mkOnlineChannel.sts === "4") {
|
|
|
+ }
|
|
|
+ this.vision = "信息补填";
|
|
|
+ this.visionsts = "";
|
|
|
+ this.infodatas = mkOnlineChannel.workloadAndsupport.length
|
|
|
+ ? mkOnlineChannel.workloadAndsupport.map((el) => ({
|
|
|
+ factoryName: el.support,
|
|
|
+ workLoad: el.workload,
|
|
|
+ }))
|
|
|
+ : [
|
|
|
+ {
|
|
|
+ factoryName: "",
|
|
|
+ workLoad: "",
|
|
|
+ },
|
|
|
+ ];
|
|
|
+ } else {
|
|
|
+ // 数组回显
|
|
|
+ this.infodatas = mkOnlineChannel.logList;
|
|
|
+ this.visionsts = "2";
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -943,6 +1220,7 @@ export default {
|
|
|
this.fileInfo.fileList = [];
|
|
|
this.dialogStatus = false;
|
|
|
this.checkexa = false;
|
|
|
+ this.only = false;
|
|
|
this.busiTime = [];
|
|
|
},
|
|
|
//获取列表
|
|
@@ -975,7 +1253,6 @@ export default {
|
|
|
// let infolist = Object.assign({}, n);
|
|
|
this.vision = "";
|
|
|
this.visionsts = "";
|
|
|
- this.infodatas = [{}, {}];
|
|
|
if (type === 1) {
|
|
|
this.titname = "查看";
|
|
|
this.visionsts = "2";
|
|
@@ -1426,6 +1703,7 @@ export default {
|
|
|
this.attList = v;
|
|
|
},
|
|
|
uploadBackin(v) {
|
|
|
+ console.log(v, "v");
|
|
|
let x = [];
|
|
|
for (let i = 1; i < v.data.body.length; i++) {
|
|
|
x.push({
|
|
@@ -1438,7 +1716,7 @@ export default {
|
|
|
//功能栏
|
|
|
iconCli(v) {
|
|
|
if (v === 1) {
|
|
|
- this.getList(this.params, this.pageSize);
|
|
|
+ this.handleInit();
|
|
|
}
|
|
|
if (v === 2) {
|
|
|
this.fullscreen = !this.fullscreen;
|