|
@@ -29,34 +29,43 @@
|
|
|
<div class="page-main-title">活动要求</div>
|
|
|
<ul class="page-main-ul clear">
|
|
|
<li>项目预算:</li>
|
|
|
- <li>{{ sitem.budget }}</li>
|
|
|
+ <li>{{ sitem.budget || '--'}}</li>
|
|
|
<li>活动城市:</li>
|
|
|
- <li>{{ sitem.shortname }}</li>
|
|
|
+ <li>{{ sitem.shortname || '--' }}</li>
|
|
|
<li>需求项目:</li>
|
|
|
- <li>{{ sitem.req_demand}}</li>
|
|
|
+ <li>
|
|
|
+ {{sitem.req_demand_name.map(({name}) => name).join(" + ")}}
|
|
|
+ </li>
|
|
|
<li>活动人数:</li>
|
|
|
- <li>{{ sitem.participant }}</li>
|
|
|
+ <li>
|
|
|
+ <span v-if="Number(sitem.participant_max) === 0">{{sitem.participant_min}}+</span>
|
|
|
+ <span v-else>{{sitem.participant_min}} ~ {{sitem.participant_max}}</span> 人
|
|
|
+ </li>
|
|
|
<li>活动需求:</li>
|
|
|
- <li>{{ sitem.require_item }}</li>
|
|
|
+ <li>{{ sitem.require_item || '--' }}</li>
|
|
|
<li>活动时间:</li>
|
|
|
- <li>{{ sitem.act_time }}</li>
|
|
|
+ <li>{{ sitem.act_time || '--'}}</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- <div class="p-right">
|
|
|
- <!-- <div style="display:flex;align-items:center;margin:10px 0px">
|
|
|
- <p style="margin-right:10px">店铺:</p>
|
|
|
- <search-store size="mini" :value.sync="storeId" />
|
|
|
- </div> -->
|
|
|
-
|
|
|
<!-- v-if="storeId" -->
|
|
|
+ <div class="p-right">
|
|
|
+ <div style="margin:15px 0px" v-if="!isNegotiate">
|
|
|
+ <el-alert
|
|
|
+ title="订单已过磋商阶段,不允许上传方案。"
|
|
|
+ type="warning"
|
|
|
+ show-icon
|
|
|
+ :closable="false"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+
|
|
|
<el-collapse v-model="actives">
|
|
|
<el-collapse-item
|
|
|
name="1"
|
|
|
title="评估预算函"
|
|
|
- v-if="String(sitem.status) === '1' || String(sitem.status) === '2'">
|
|
|
+ v-if="(String(sitem.status) === '1' || String(sitem.status) === '2') || !isNegotiate">
|
|
|
<letter
|
|
|
ref="evaLetter"
|
|
|
:status="1"
|
|
@@ -64,7 +73,7 @@
|
|
|
:id="sitem.id"
|
|
|
:isFile="true"
|
|
|
:isSelection="true"
|
|
|
- :readonly="Number(sitem.status) !== 1"
|
|
|
+ :readonly="Number(sitem.status) !== 1 || !isNegotiate"
|
|
|
@selection="handleSelection($event, 'evalute')"
|
|
|
@updateLetter="linkToLetterUpdate"
|
|
|
:requsetMethod="requestBudgetLetter"
|
|
@@ -75,7 +84,7 @@
|
|
|
<el-collapse-item
|
|
|
name="2"
|
|
|
title="活动方案管理"
|
|
|
- v-if="String(sitem.status) === '2' || String(sitem.status) === '3'">
|
|
|
+ v-if="(String(sitem.status) === '2' || String(sitem.status) === '3') || !isNegotiate">
|
|
|
<letter
|
|
|
:status="2"
|
|
|
ref="actLetter"
|
|
@@ -83,7 +92,7 @@
|
|
|
:id="sitem.id"
|
|
|
:isFile="true"
|
|
|
:isSelection="true"
|
|
|
- :readonly="Number(sitem.status) !== 2"
|
|
|
+ :readonly="Number(sitem.status) !== 2 || !isNegotiate"
|
|
|
:beforeModalVisible="beforeActivityModalVisible"
|
|
|
@selection="handleSelection($event, 'activity')"
|
|
|
:requsetMethod="reqsetActivityLetter"
|
|
@@ -95,14 +104,14 @@
|
|
|
<el-collapse-item
|
|
|
name="3"
|
|
|
title="计划预算函管理"
|
|
|
- v-if="String(sitem.status) === '3'">
|
|
|
+ v-if="String(sitem.status) === '3' || !isNegotiate">
|
|
|
<letter
|
|
|
ref="proLetter"
|
|
|
:status="3"
|
|
|
type="project"
|
|
|
:id="sitem.id"
|
|
|
:isFile="true"
|
|
|
- :readonly="Number(sitem.status) !== 3"
|
|
|
+ :readonly="Number(sitem.status) !== 3 || !isNegotiate"
|
|
|
@selection="handleSelection($event, 'project')"
|
|
|
:requsetMethod="requsetProjectLetter"
|
|
|
:beforeModalVisible="beforeProjectModalVisible"
|
|
@@ -151,7 +160,9 @@ export default {
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ isNegotiate: true,
|
|
|
fullLoading:false,
|
|
|
+ refreshTimer: null,
|
|
|
storeId: "",
|
|
|
demandStatusOptions,
|
|
|
countdown:'00:00:00',
|
|
@@ -191,12 +202,12 @@ export default {
|
|
|
};
|
|
|
},
|
|
|
mounted() {
|
|
|
- this.initForm();
|
|
|
+ this.initForm()
|
|
|
+ this.regiterRefreshTimer()
|
|
|
},
|
|
|
beforeDestroy() {
|
|
|
- if (this.timer) {
|
|
|
- clearInterval(this.timer);
|
|
|
- }
|
|
|
+ this.clearRefreshTimer()
|
|
|
+ this.clearTimer()
|
|
|
},
|
|
|
methods: {
|
|
|
async initForm() {
|
|
@@ -208,6 +219,20 @@ export default {
|
|
|
await this.initData();
|
|
|
this.loading = false;
|
|
|
},
|
|
|
+ regiterRefreshTimer(){
|
|
|
+ this.refreshTimer = setInterval(async () => {
|
|
|
+ await this.initForm()
|
|
|
+ const letters = ['evaLetter','actLetter','proLetter']
|
|
|
+ letters.forEach(letter => {
|
|
|
+ this.$refs[letter] && this.$refs[letter].searchList()
|
|
|
+ })
|
|
|
+ }, 60000)
|
|
|
+ },
|
|
|
+ clearRefreshTimer(){
|
|
|
+ if(!this.refreshTimer) return
|
|
|
+ window.clearInterval(this.refreshTimer)
|
|
|
+ this.refreshTimer = null
|
|
|
+ },
|
|
|
getTime(value) {
|
|
|
var secondTime = parseInt(value);// 秒
|
|
|
var minuteTime = 0;// 分
|
|
@@ -243,11 +268,13 @@ export default {
|
|
|
},
|
|
|
async initData() {
|
|
|
const { code, message, data } = await asyncRequest.detail({
|
|
|
- id: this.queryId,
|
|
|
+ id: this.queryId
|
|
|
});
|
|
|
if (code === 1) {
|
|
|
this.sitem = data
|
|
|
- const { req_endtime } = this.sitem;
|
|
|
+ const { req_endtime , flow_stage } = this.sitem;
|
|
|
+
|
|
|
+ this.isNegotiate = flow_stage === "磋商阶段"
|
|
|
this.timer = setInterval(() => {
|
|
|
let now = dayjs(new Date())
|
|
|
const minuend = now.diff(req_endtime, 'second')
|
|
@@ -267,14 +294,6 @@ export default {
|
|
|
handleSelection(val, key){
|
|
|
this.selected[key] = val
|
|
|
},
|
|
|
- async repeat_initData() {
|
|
|
- const { code, message, data } = await asyncRequest.detail({
|
|
|
- infoNo: this.queryId,
|
|
|
- });
|
|
|
- const { status } = data;
|
|
|
- const res = { code, status, message };
|
|
|
- return res;
|
|
|
- },
|
|
|
getNewTime() {
|
|
|
this.newTime = new Date().valueOf();
|
|
|
},
|
|
@@ -299,9 +318,14 @@ export default {
|
|
|
return false
|
|
|
}
|
|
|
|
|
|
+ if(Number(this.selected.evalute[0].is_check) !== 1){
|
|
|
+ this.$message.warning('必须选择被选中的预算函')
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
return {
|
|
|
- req_id: this.$route.query.id,
|
|
|
- id: this.selected.evalute[0],
|
|
|
+ req_id: this.$route.query.id,
|
|
|
+ id: this.selected.evalute[0].id,
|
|
|
form: 'activity'
|
|
|
}
|
|
|
},
|
|
@@ -318,7 +342,7 @@ export default {
|
|
|
|
|
|
return {
|
|
|
req_id:this.$route.query.id,
|
|
|
- id: this.selected.activity[0],
|
|
|
+ id: this.selected.activity[0].id,
|
|
|
form: 'project'
|
|
|
}
|
|
|
},
|