master
xy 1 year ago
parent 0f6ce25211
commit 795e71adfe

@ -62,7 +62,7 @@ if(window.top !== window.self) {
// 当前页面在iframe中
window._IN_IFRAME = true;
Vue.config.errorHandler = (err, vm, info) => {
parent?._addError(err.message, err.stack)
top?._addError(err.message, err.stack)
console.error(err)
}
}

@ -42,7 +42,7 @@ service.interceptors.request.use(
error => {
// do something with request error
console.log(error) // for debug
parent?._addError(error, 'axios-request', error.config.params||error.config.data)
top?._addError(error, 'axios-request', error.config.params||error.config.data)
return Promise.reject(error)
}
)
@ -88,11 +88,11 @@ service.interceptors.response.use(
location.reload()
})
if (window._IN_IFRAME) {
parent?._logout()
top?._logout()
}
})
}
parent?._addError(res.msg, `axios-response ${response.config.url}`, response.config.params || response.config.data)
top?._addError(res.msg, `axios-response ${response.config.url}`, response.config.params || response.config.data)
return Promise.reject(new Error(res.msg || 'Error'))
} else {
return res.data
@ -106,7 +106,7 @@ service.interceptors.response.use(
type: 'error',
duration: 5 * 1000
})
parent?._addError(error.toString(), `axios-request ${error.config.url}`, error.config.params || error.config.data)
top?._addError(error.toString(), `axios-request ${error.config.url}`, error.config.params || error.config.data)
return Promise.reject(error)
}
)

@ -146,7 +146,7 @@
</template>
</template>
<template v-else #default="{ row }">
<template v-if="row.FLOWSTATUS.expense.getStatus() === 3">
<template v-if="row.FLOWSTATUS.expense.getStatus() === 1">
<Button
v-if="row.FLOWSTATUS.financial.getStatus() !== 2"
style="margin: 2px;"
@ -200,6 +200,21 @@
</div>
<addAway ref="addAway" @refresh="getList"></addAway>
<examineAway ref="examineAway" @refresh="getList"></examineAway>
<!-- oa办理-->
<Modal
:width="86"
class-name="oa-modal"
title="流程办理"
fullscreen
:mask-closable="false"
v-model="isShowOaModal"
footer-hide
>
<div style="width: 100%;height: 100%;">
<iframe style="width: 100%;height: 100%;border-radius: 0 0 6px 6px;" :src="oaUrl" frameborder="0"></iframe>
</div>
</Modal>
</div>
</template>
@ -216,6 +231,8 @@ export default {
},
data() {
return {
isShowOaModal: false,
oaUrl: '',
expenseUser: ["admin","panjiajia","huyangcui","wanghui"],
window: {
width: 0,
@ -233,23 +250,25 @@ export default {
total: 0,
list: [],
flowStatus: new Map([
[0, "-"],
[1, "待申请"],
[2, "流转中"],
[3, "已办结"]
[2, "待申请"],
[-1, "已退回"],
[-2, "-"],
[0, "流转中"],
[1, "已办结"]
]),
flowStatusColor: new Map([
[0, "rgb(140, 140, 140)"],
[1, "rgb(96, 109, 241)"],
[2, "rgb(219, 122, 122)"],
[3, "rgb(147, 201, 134)"]
[-2, "rgb(140, 140, 140)"],
[-1, "#dca550"],
[2, "rgb(96, 109, 241)"],
[0, "rgb(219, 122, 122)"],
[1, "rgb(147, 201, 134)"]
]),
table: [
{
type: 'selection',
width: 54,
reserveSelection: true,
selectable: row => row.away_flow_id && row.away_status === 3 && !row.expense_flow_id,
selectable: row => row.FLOWSTATUS.expense.isEnabled(),
fixed: "left"
},
{
@ -341,7 +360,7 @@ export default {
<span style={{ 'color': this.flowStatusColor.get(row.FLOWSTATUS.away.getStatus()) }}>{ this.flowStatus.get(row.FLOWSTATUS.away.getStatus()) || '待申请' }</span>
<br/>
{
(row.FLOWSTATUS.away.getStatus() > 1) ? <a style="color: #333" on={{['click']:()=>{
(row.FLOWSTATUS.away.getStatus() !== 2 && row.FLOWSTATUS.away.getStatus() !== -2) ? <a style="color: #333" on={{['click']:()=>{
this.toOaDetail('away',row)
}}}>查看</a> : ''
}
@ -363,7 +382,7 @@ export default {
}
<br/>
{
(row.FLOWSTATUS.expense.getStatus() > 1) ? <a style="color: #333" on={{['click']:()=>{
(row.FLOWSTATUS.expense.getStatus() !== 2 && row.FLOWSTATUS.expense.getStatus() !== -2) ? <a style="color: #333" on={{['click']:()=>{
this.toOaDetail('expense',row)
}}}>查看</a> : ''
}
@ -415,10 +434,10 @@ export default {
let url = `${process.env.VUE_APP_OUT_URL}/#/flow/detail?auth_token=${window.encodeURIComponent(getToken())}&isSinglePage=1&flow_id=`
switch (tbname) {
case "away":
url += row.away_flow_id
url += row.flow_list.find(i => i.tag === 'chuchai')?.flow_id
break;
case 'expense':
url += row.expense_flow_id
url += row.flow_list.find(i => i.tag === 'chuchaibaoxiao')?.flow_id
break;
default:
url = `${process.env.VUE_APP_OUT_URL}/flow/list/todo`
@ -459,7 +478,6 @@ export default {
goAway (row) {
// 70
const baseInfo = {
"flow_title": row.title,
"kaishi": row.start_date,
"jieshu": row.end_date,
"chuchaishiyou": row.title,
@ -473,19 +491,17 @@ export default {
let url;
if (row) {
const baseInfo = {
"flow_title": row.title,
"totalAmt": row.expense,
"chuchaishiyou": row.title,
"65af398d89e75": row.away_flow_id,
"xiangguanchuchaishenpidan": [row.flow_list.find(i => i.tag === 'chuchai')?.flow_id].toString(),
};
url = `${process.env.VUE_APP_OUT_OLD}/#/flow/create?auth_token=${window.encodeURIComponent(getToken())}&module_name=oa&isSinglePage=1&module_id=78&out_away_id=${row.id}&default_json=${JSON.stringify(baseInfo)}`;
} else {
let rows = this.$refs['xyTable'].getSelection()
const baseInfo = {
"flow_title": rows.map(row => row.title).toString() ,
"totalAmt": row.reduce((pre, cur) => pre + Number(row.expense??0),0),
"chuchaishiyou": rows.map(row => row.title).toString(),
"65af398d89e75": rows.map(row => row.away_flow_id).toString(),
"xiangguanchuchaishenpidan": rows.map(i => row.flow_list.find(i => i.tag === 'chuchai')?.flow_id)?.filter(i => i)?.toString()
};
url = `${process.env.VUE_APP_OUT_OLD}/#/flow/create?auth_token=${window.encodeURIComponent(getToken())}&module_name=oa&isSinglePage=1&module_id=78&out_away_id=${rows.map(i => i.id)?.toString()}&default_json=${JSON.stringify(baseInfo)}`;
}
@ -517,13 +533,18 @@ export default {
return this.executable
}
isEnabled () {
return this.executable && this.status === 1
return this.executable && (this.status === 2 || this.status === "")
}
}
const res = await index(this.select,!isFirst);
delete this.select.id;
this.total = res.total;
this.list = res.data;
// [2, ""],
// [-1, "退"],
// [-2, "-"],
// [0, ""],
// [1, ""]
this.list.forEach(item => {
let flowStatus = {
"useCar": new Flow(),
@ -532,32 +553,19 @@ export default {
"expense": new Flow(),
"financial": new Flow()
}
// if (item.use_car) {
// flowStatus.useCar.setStatus(item.use_car_status)
// if (item.use_car_status === 1) {
// flowStatus.useCar.setExecutable(true)
// }
// }
// if (item.is_subsidize) {
// flowStatus.subsidize.setStatus(item.subsidize_status)
// if (item.subsidize_status === 1) {
// flowStatus.subsidize.setExecutable(true)
// }
// }
flowStatus.away.setStatus(item.away_status)
if (item.away_status === 1) {
const chuchai = item.flow_list.find(i => i.tag === 'chuchai')
const chuchaibaoxiao = item.flow_list.find(i => i.tag === 'chuchaibaoxiao')
flowStatus.away.setStatus(chuchai?.flow_status ?? 2)
if (!chuchai || chuchai?.flow_status === 2) {
flowStatus.away.setExecutable(true)
}
flowStatus.expense.setStatus(item.expense_status)
// if ((!item.is_subsidize || item.subsidize_status === 3) && (!item.use_car || item.use_car_status === 3) && item.away_status === 3 && (!item.expense_status || item.expense_status === 1) && (this.$moment().diff(this.$moment(item.end_date),"days") <= 30 || item.can_expenses)) {
// flowStatus.expense.setExecutable(true)
// }
if (item.away_status === 3 && (!item.expense_status || item.expense_status === 1) && (this.$moment().diff(this.$moment(item.end_date),"days") <= 30 || item.can_expenses)) {
flowStatus.expense.setStatus(chuchaibaoxiao?.flow_status ?? 2)
if (chuchai?.flow_status === 1 && (!chuchaibaoxiao || chuchaibaoxiao.flow_stauts === 2) && (this.$moment().diff(this.$moment(item.end_date),"days") <= 30 || item.can_expenses)) {
flowStatus.expense.setExecutable(true)
}
flowStatus.financial.setStatus(item.financial_status)
if (item.expense_status === 3) {
if (chuchaibaoxiao?.flow_status === 1) {
flowStatus.financial.setExecutable(true)
}
item.FLOWSTATUS = flowStatus;

@ -96,7 +96,7 @@ export default {
},
submit() {
this.detail.invite_status = 1;
this.detail.tender_id = this.fileList.map(i => i.response?.id)
this.detail.tender_id = this.fileList.map(i => i?.response?.id || i.response?.data?.id)
editorContract(this.detail).then((res) => {
this.hide();
this.$emit("refresh");

@ -129,12 +129,12 @@
</div>
</div>
</div>
<div class="out-sign-info" v-if="outContractDetail.flow_detail">
<div class="out-sign-info" v-if="outContractDetail">
<div class="sign-info-title">合同审批信息</div>
<div class="sign-info-item">
<div class="sign-info-item-title">合同金额</div>
<div class="sign-info-item-content">
{{ moneyFormat(outContractDetail.flow_detail.total) }}
{{ moneyFormat(outContractDetail.data ? outContractDetail.data.amt : 0) }}
</div>
<div class="sign-info-item-unit"></div>
</div>
@ -142,41 +142,35 @@
<div class="sign-info-item" style="flex-basis: 50%">
<div class="sign-info-item-title">甲方</div>
<div class="sign-info-item-content">
{{ outContractDetail.flow_detail.jiafang }}
{{ outContractDetail.data ? outContractDetail.data.jiafang : '' }}
</div>
</div>
<div class="sign-info-item" style="flex-basis: 50%">
<div class="sign-info-item-title">乙方</div>
<div class="sign-info-item-content">
{{ outContractDetail.flow_detail.yifang }}
{{ outContractDetail.data ? outContractDetail.data.yifang : '' }}
</div>
</div>
</div>
</div>
<div class="out-sign-info" v-if="outCaigouDetail.flow_detail">
<div class="out-sign-info" v-if="outCaigouDetail">
<div class="sign-info-title">采购信息</div>
<div class="sign-info-item">
<div class="sign-info-item-title">名称</div>
<div class="sign-info-item-title">采购单位</div>
<div class="sign-info-item-content">
{{ outCaigouDetail.flow_detail.content_name }}
{{ outCaigouDetail.data ? outCaigouDetail.data.caigoudanwei : '' }}
</div>
</div>
<div class="sign-info-item" style="flex-basis: 50%">
<div class="sign-info-item-title">规格</div>
<div class="sign-info-item-content">
{{ outCaigouDetail.flow_detail.content_guige }}
</div>
</div>
<div class="sign-info-item" style="flex-basis: 50%">
<div class="sign-info-item-title">类型</div>
<div class="sign-info-item">
<div class="sign-info-item-title">采购方式</div>
<div class="sign-info-item-content">
{{ outCaigouDetail.flow_detail.type }}
{{ outCaigouDetail.data ? outCaigouDetail.data.caigoufangshi : '' }}
</div>
</div>
<div class="sign-info-item" style="flex-basis: 50%">
<div class="sign-info-item-title">预算</div>
<div class="sign-info-item-title">采购金额</div>
<div class="sign-info-item-content">
{{ moneyFormat(outCaigouDetail.flow_detail.yusuan) }}
{{ moneyFormat(outCaigouDetail.data ? outCaigouDetail.data.caigoujine : 0) }}
</div>
</div>
</div>
@ -340,6 +334,8 @@ import { getparameter } from "@/api/system/dictionary";
import { getOutDetail, httpCurl } from "@/api/out";
import detailContractSign from "./detailContractSign";
import axios from "axios";
import {getToken} from "@/utils/auth";
export default {
components: {
detailContractSign,
@ -653,15 +649,32 @@ export default {
watch: {
isShowDetail(val) {
if (val) {
httpCurl({ tbname: "hetong", out_contract_id: this.id }).then((res) => {
this.outContractDetail = res;
});
httpCurl({ tbname: "caigou", out_caigou_id: this.id }).then((res) => {
this.outCaigouDetail = res;
});
httpCurl({ tbname: "pay", out_pay_id: this.id }).then((res) => {
this.outPayDetail = res;
});
let contractId = this.detail?.flow_list?.find(i => i.tag === 'contract')?.flow_id
axios.get(`${process.env.VUE_APP_BASE_API}/api/oa/flow/view/${contractId}`,{
headers: {
Authorization: `Bearer ${getToken()}`
}
}).then(res => {
if (res.status === 200) {
if (res.data.code) {
return
}
this.outContractDetail = res.data.data?.flow
}
})
let caigouId = this.detail?.flow_list?.find(i => i.tag === 'caigou')?.flow_id
axios.get(`${process.env.VUE_APP_BASE_API}/api/oa/flow/view/${caigouId}`,{
headers: {
Authorization: `Bearer ${getToken()}`
}
}).then(res => {
if (res.status === 200) {
if (res.data.code) {
return
}
this.outCaigouDetail = res.data.data?.flow
}
})
}
},
},

@ -2476,7 +2476,9 @@ export default {
this.select.is_contract = 1;
// TODO:
/// this.select.purchase_status = 3;
// this.select.invite_status = 3;
this.select.invite_status = 3;
this.select["flow_link[0][custom_model_id]"] = 71;
this.select["flow_link[0][flow_status]"] = 1
}
if (/contractAll/g.test(this.$route.path)) {
this.select.is_simple = "";

@ -209,7 +209,6 @@
<xy-table
ref="xyTable"
:cell-style="cellStyle"
:list="list"
:show-summary="true"
:summary-method="summary"
@ -238,32 +237,6 @@
>
查看
</Button>
<Button
class="slot-btns-item"
@click="switchAssurance(scope.row.id, 1)"
size="small"
type="primary"
v-if="
scope.row.assurance_status == 0 &&
type == 1 &&
scope.row.is_assurance == 1
"
>
确认登记
</Button>
<Button
class="slot-btns-item"
@click="switchAssurance(scope.row.id, 0)"
size="small"
type="danger"
v-if="
scope.row.assurance_status == 1 &&
type == 1 &&
scope.row.is_assurance == 1
"
>
取消登记
</Button>
</div>
</template>
</el-table-column>
@ -293,6 +266,21 @@
<contractPaymentRegistration
ref="contractPaymentRegistration"
></contractPaymentRegistration>
<!-- oa办理-->
<Modal
:width="86"
class-name="oa-modal"
title="流程办理"
fullscreen
:mask-closable="false"
v-model="isShowOaModal"
footer-hide
>
<div style="width: 100%;height: 100%;">
<iframe style="width: 100%;height: 100%;border-radius: 0 0 6px 6px;" :src="oaUrl" frameborder="0"></iframe>
</div>
</Modal>
</div>
</template>
@ -316,6 +304,7 @@ import paymentRegistration from "./components/paymentRegistration";
import contractSign from "@/views/contract/components/contractSign";
import contractPaymentRegistration from "@/views/contract/components/contractPaymentRegistration";
import pieChart from '@/views/dashboard/components/PieChart.vue'
import {getToken} from "@/utils/auth";
export default {
components: {
pieChart,
@ -337,9 +326,25 @@ export default {
}
};
return {
isShowOaModal: false,
oaUrl: '',
flowStatus: new Map([
[2, "待申请"],
[-1, "已退回"],
[-2, "-"],
[0, "流转中"],
[1, "已办结"]
]),
flowStatusColor: new Map([
[-2, "rgb(140, 140, 140)"],
[-1, "#dca550"],
[2, "rgb(96, 109, 241)"],
[0, "rgb(219, 122, 122)"],
[1, "rgb(147, 201, 134)"]
]),
pageTitle: "合同列表",
type: 0, //pageType _0 _1
userList: ["liuxiangyu", "zhushulan", "admin", "jiangjiao"],
userList: ["liuxiangyu", "admin"],
window: {
width: 0,
height: 0,
@ -440,10 +445,19 @@ export default {
table: [
{
label: "项目名称",
width: 340,
width: 380,
prop: "name",
fixed: "left",
align: "left",
customFn:row => {
if (row.type === 1 && row.end_date && (this.$moment().valueOf() - this.$moment(row.end_date).valueOf()) > 0) {
return (<span style="color: red;"><span>已到期</span><span>{row.name}</span></span>)
} else {
return (
<span>{row.name}</span>
)
}
}
},
{
label: "采购形式",
@ -473,95 +487,62 @@ export default {
{
label: "采购流程",
multiHd: [
// {
// label: "",
// width: 140,
// prop: "req_status",
// formatter: (cell, data, value) => {
// if (cell.is_plan === 1) {
// return "";
// }
// switch (value) {
// case 1:
// return "";
// break;
// case 2:
// return "";
// break;
// case 3:
// return "";
// break;
// default:
// return "";
// break;
// }
// },
// },
{
label: "采购业务审批流程",
width: 158,
prop: "purchase_status",
formatter: (cell, data, value) => {
switch (value) {
case 1:
return "待申请";
break;
case 2:
return "流转中";
break;
case 3:
return "已办结";
break;
default:
return "异常";
break;
}
},
customFn:row => {
return (
<div>
<span style={{ 'color': this.flowStatusColor.get(row.FLOWSTATUS.caigou.getStatus()) }}>{ this.flowStatus.get(row.FLOWSTATUS.caigou.getStatus()) || '无2' }</span>
<br/>
{
(row.FLOWSTATUS.caigou.getStatus() !== 2 && row.FLOWSTATUS.caigou.getStatus() !== -2) ? <a style="color: #333" on={{['click']:()=>this.toOaDetail('caigou',row)}}>查看</a> : ''
}
</div>
)
}
},
{
label: "招标审核流程",
width: 145,
prop: "invite_status",
formatter: (cell, data, value) => {
if (cell.purchase_way?.remark === "false") {
return "无";
customFn:row => {
if (!row.FLOWSTATUS.zhaobiao.getStatus()) {
return (<span style="color: rgb(140, 140, 140)"></span>);
}
switch (value) {
case 1:
return "待申请";
break;
case 2:
return "流转中";
break;
case 3:
return "已办结";
break;
default:
return "异常";
break;
}
},
return (
<div>
<span style={{ 'color': this.flowStatusColor.get(row.FLOWSTATUS.zhaobiao.getStatus()) }}>{ this.flowStatus.get(row.FLOWSTATUS.zhaobiao.getStatus()) }</span>
<br/>
{
(row.FLOWSTATUS.zhaobiao.getStatus() !== 2 && row.FLOWSTATUS.zhaobiao.getStatus() !== -2) ? <a style="color: #333" on={{['click']:()=>{
this.$refs['biddingUpload'].setId(row.id)
this.$refs['biddingUpload'].show()
}}}>查看</a> : ''
}
</div>
)
}
},
{
label: "合同会签流程",
label: "合同审批流程",
width: 145,
prop: "join_status",
formatter: (cell, data, value) => {
switch (value) {
case 1:
return "待申请";
break;
case 2:
return "流转中";
break;
case 3:
return "已办结";
break;
default:
return "异常";
break;
customFn:row => {
if (!row.FLOWSTATUS.shenpi.getStatus()) {
return (<span style="color: rgb(140, 140, 140)"></span>);
}
},
return (
<div>
<span style={{ 'color': this.flowStatusColor.get(row.FLOWSTATUS.shenpi.getStatus()) }}>{ this.flowStatus.get(row.FLOWSTATUS.shenpi.getStatus()) }</span>
<br/>
{
(row.FLOWSTATUS.shenpi.getStatus() !== 2 && row.FLOWSTATUS.shenpi.getStatus() !== -2) ? <a style="color: #333" on={{['click']:()=>this.toOaDetail('hetong',row)}}>查看</a> : ''
}
</div>
)
}
},
],
},
@ -993,6 +974,26 @@ export default {
}
},
methods: {
async toOaDetail (tbname,row) {
let url = `${process.env.VUE_APP_OUT_URL}/#/flow/detail?auth_token=${window.encodeURIComponent(getToken())}&isSinglePage=1&flow_id=`
switch (tbname) {
case "caigou":
let caigou = row.flow_list.find(i => i.tag === 'caigou')
url += caigou?.flow_id
break;
case "hetong":
let contract = row.flow_list.find(i => i.tag === 'contract')
url += contract?.flow_id
break;
case "other":
url += row.other_flow_id
break;
default:
url = `${process.env.VUE_APP_OUT_URL}/flow/list/todo`
}
this.oaUrl = url
this.isShowOaModal = true
},
reset() {
this.select = deepCopy(this.selectCopy);
},
@ -1073,110 +1074,6 @@ export default {
return sums;
},
cellStyle({ row, column, rowIndex, columnIndex }) {
if (column.property === "req_status") {
if (row.is_plan === 1) {
return {
color: "rgb(140,140,140)",
};
}
switch (row.req_status) {
case 1:
return {
color: "rgb(96,109,241)",
};
break;
case 2:
return {
color: "rgb(219,122,122)",
};
break;
case 3:
return {
color: "rgb(147,201,134)",
};
break;
default:
return {
color: "rgb(220,185,126)",
};
}
}
if (column.property === "purchase_status") {
switch (row.purchase_status) {
case 1:
return {
color: "rgb(96,109,241)",
};
break;
case 2:
return {
color: "rgb(219,122,122)",
};
break;
case 3:
return {
color: "rgb(147,201,134)",
};
break;
default:
return {
color: "rgb(220,185,126)",
};
}
}
if (column.property === "invite_status") {
if (row.purchase_way?.remark === "false") {
return {
color: "rgb(140,140,140)",
};
}
switch (row.invite_status) {
case 1:
return {
color: "rgb(96,109,241)",
};
break;
case 2:
return {
color: "rgb(219,122,122)",
};
break;
case 3:
return {
color: "rgb(147,201,134)",
};
break;
default:
return {
color: "rgb(220,185,126)",
};
}
}
if (column.property === "join_status") {
switch (row.join_status) {
case 1:
return {
color: "rgb(96,109,241)",
};
break;
case 2:
return {
color: "rgb(219,122,122)",
};
break;
case 3:
return {
color: "rgb(147,201,134)",
};
break;
default:
return {
color: "rgb(220,185,126)",
};
}
}
},
confirmPlanForSearch() {
this.isShowPlanForSearch = false;
this.getContracts();
@ -1347,7 +1244,7 @@ export default {
page: this.select.pageIndex,
...this.select,
});
res.list.data.forEach(i => this.handleContractFlow(i))
this.list = res.list.data;
this.total = res.list.total;
this.tableTotal.fundLogTotal = res.fund_log_total;
@ -1358,6 +1255,102 @@ export default {
.toFixed(2)
.replace(/(\d)(?=(\d{3})+\.)/g, "$1,");
},
//
handleContractFlow (item) {
class Flow {
status = 0
executable = false
constructor(status=-2, executable=false) {
this.status = status
this.executable = executable
}
setStatus (status) {
this.status = status
}
setExecutable (executable) {
if (typeof executable === 'boolean') {
this.executable = executable
}
}
getStatus () {
return this.status
}
isEnabled () {
return this.executable && (this.status === 2 || this.status === "")
}
}
// [2, ""],
// [-1, "退"],
// [-2, "-"],
// [0, ""],
// [1, ""]
let flowStatus = {
"caigou": new Flow(),
"zhaobiao": new Flow(),
"shenpi": new Flow(),
"qianding": new Flow(),
"zhifu": new Flow(),
"other": new Flow()
}
const caigou = item.flow_list.find(i => i.tag === 'caigou')
const shenpi = item.flow_list.find(i => i.tag === 'contract')
if (item.is_purchase) {
//
if (item.is_simple !== 1 && !item.is_substitute) {
//
flowStatus["caigou"].setStatus(caigou?.flow_status ?? 2)
if (!caigou) {
//
if (item.is_plan === 1) {
flowStatus["caigou"].setExecutable(true)
}
}
}
if (item.purchase_way?.value !== '网上商城' && item.is_contract && item.purchase_way?.remark === 'true' && !item.is_substitute) {
// \
flowStatus["zhaobiao"].setStatus(item.invite_status ?? 2)
if ((!item.invite_status || item.invite_status === 2) && caigou?.flow_status === 1) {
//
flowStatus["zhaobiao"].setExecutable(true)
}
}
if (item.is_contract && item.purchase_way?.value !== "网上商城") {
//
flowStatus["shenpi"].setStatus(shenpi?.flow_status ?? 2)
if ((!shenpi?.flow_status || shenpi?.flow_status === 2) && (item.invite_status === 1 ||
((item.purchase_way?.remark === 'false' || item.flow_mod_id === 5 || item.flow_mod_id === 29) && caigou?.flow_status === 1))) {
//
flowStatus["shenpi"].setExecutable(true)
}
}
if (item.is_contract && item.purchase_way?.value !== "网上商城" && !item.is_substitute) {
flowStatus["qianding"].setStatus(item.status)
if (shenpi?.flow_status === 1 && item.status === 1) {
flowStatus["qianding"].setExecutable(true)
}
}
} else {
if (item.flow_mod_id) {
//
flowStatus["other"].setStatus(item.other_flow_status??1)
if (item.other_flow_status === 1 || !item.other_flow_status) {
flowStatus["other"].setExecutable(true)
}
}
}
if (item.is_end === 0) {
flowStatus["zhifu"].setStatus(2)
//
if ((item.is_purchase === 0 && item.other_flow_status === 3) || (!item.is_contract && !item.is_substitute && caigou?.flow_status === 1) || (item.purchase_way?.value === "网上商城" && caigou?.flow_status === 1) ||
item.status === 2 ||
(!item.is_contract && item.is_simple) || (item.is_contract && item.is_substitute && shenpi?.flow_status === 1)) {
//
flowStatus["zhifu"].setExecutable(true)
}
}
item.FLOWSTATUS = flowStatus
},
//
//

@ -540,7 +540,7 @@ export default {
computed: {
authOa () {
return function (row) {
return row.flow_list.find(i => i.tag === 'pay')?.status === 1
return row.flow_list.find(i => i.tag === 'pay')?.flow_status === 1
}
}
},

Loading…
Cancel
Save