Selaa lähdekoodia

feat:需求订单修改

snow 1 vuosi sitten
vanhempi
commit
a8bd98dd13

+ 17 - 0
src/components/data-table/src/demand.vue

@@ -51,6 +51,17 @@
           </el-tag>
         </div>
       </template>
+
+      <template #pz>
+        <div v-if="demandInfo.ReqProof_customer" style="display:flex;margin-right:5px">
+          <div v-viewer v-for="image in demandInfo.ReqProof_customer.filter(({user_type, status}) => user_type === 1 && status === 1)" 
+            :key="image.proof_url" 
+            style="height:20px;width:20px;cursor:pointer;margin-left:5px"
+          >
+            <img style="width:100%;height:100%" :src="image.proof_url" />
+          </div>
+        </div>
+      </template>
     </show-data-table>
 </template>
 
@@ -155,6 +166,7 @@ export default {
           span:8
         },
         {
+          props:'store_name',
           label:'店铺名称',
           span:8
         },
@@ -167,6 +179,11 @@ export default {
           prop:'wpay_amount',
           label:'未付款金额',
           span:8
+        },
+        {
+          label:'凭证图片',
+          _slot_:'pz',
+          span:24
         }
       ]
     }

+ 3 - 3
src/components/manage/src/letter/_columns.js

@@ -220,9 +220,9 @@ const mapCheck = {
       no:0
     },
     settlement:{
-        ok:1,
-        no:0
-      }
+      ok:1,
+      no:0
+    }
 }
 
 const mapTitle = {

+ 1 - 0
src/views/customerService/demandOrder/columns.js

@@ -200,6 +200,7 @@ const demandDetailColumns = [
     span:8
   },
   {
+    prop: 'store_name',
     label:'店铺名称',
     span:8
   },

+ 48 - 27
src/views/customerService/demandOrder/components/demandDetail/index.vue

@@ -10,19 +10,29 @@
       <template #prepaymentType>
         <div class="flex-between align-center" style="height:18px;padding-top:5px">
           <el-tag size="mini" style="margin-left:5px">
-            {{(prepaymentTypeOptions.find(({value}) => value === String(sitem.prepay_type)) || {}).label || '暂无预付'}}
+            {{(prepaymentTypeOptions.find(({value}) =>value === String(sitem.prepay_type)) || {}).label || '暂无预付'}}
           </el-tag>
 
-          <div v-if="sitem.prepay_image" style="display:flex;margin-right:5px">
-            <div v-viewer v-for="image in sitem.prepay_image.split(',')" :key="image" style="height:20px;width:20px;cursor:pointer">
+          <div v-if="sitem.prepay_image" style="display:flex; margin-right:5px">
+            <div 
+              v-viewer 
+              v-for="image in sitem.prepay_image.split(',')" 
+              style="height:20px;width:20px;cursor:pointer"
+              :key="image" 
+              >
               <img style="width:100%;height:100%" :src="image" />
             </div>
           </div>
 
           <el-button 
-             v-if="Number(sitem.status) >= 6 && sitem.prepay_type !== 1 && sitem.prepay_type !== 2"
+             v-if="
+              (Number(sitem.status) >= 6) 
+              && sitem.prepay_type !== 1 
+              && sitem.prepay_type !== 2"
             style="margin-right:5px;line-height:8px" 
-            type="primary" size="mini" @click="requsetModalVisible = true"
+            type="primary" 
+            size="mini" 
+            @click="requsetModalVisible = true"
           >申请预付</el-button>
         </div>
       </template>
@@ -36,7 +46,10 @@
           <p style="margin-left:5px">{{sitem.prepay_amount}}</p>
 
           <el-button 
-            v-if="Number(sitem.status) >= 6 && !sitem.prepay_image && Number(sitem.prepay_amount) === 0"
+            v-if="
+              (Number(sitem.status) >= 6) 
+              && !sitem.prepay_image 
+              && Number(sitem.prepay_amount) === 0"
             style="margin-right:5px;line-height:8px" 
             type="primary" size="mini" @click="uploadModalVisible = true"
           >上传预付付款凭证</el-button>
@@ -49,9 +62,11 @@
       </template>
 
       <template #pz>
-        <div v-if="sitem.ReqProof" style="display:flex;margin-right:5px">
-          <div v-viewer v-for="image in sitem.ReqProof.filter(({user_type}) => user_type === 1)" :key="image.proof_url" 
-            style="height:20px;width:20px;cursor:pointer;margin-left:5px">
+        <div v-if="sitem.ReqProof_customer" style="display:flex;margin-right:5px">
+          <div v-viewer v-for="image in sitem.ReqProof_customer.filter(({user_type, status}) => user_type === 1 && status === 1)" 
+            :key="image.proof_url" 
+            style="height:20px;width:20px;cursor:pointer;margin-left:5px"
+          >
             <img style="width:100%;height:100%" :src="image.proof_url" />
           </div>
         </div>
@@ -68,32 +83,38 @@
       <template #currentStatus>
         <div class="align-center" style="height:18px; padding-top:5px">
           <el-tag size="mini" style="margin-left:5px">{{sitem.flow_stage}}:{{
-            (demandStatusOptions.find(({value}) => value === String(sitem.status)) || {}).label || '--'
-            }}
+            (demandStatusOptions.find(({value}) => value === String(sitem.status)) || {}).label || '--'}}
           </el-tag>
 
-          <!-- <el-tooltip content="切换到上一节点" placement="top"> -->
-          <el-button-group>
+          <component :is="
+            (Number(sitem.status) >= 2 && Number(sitem.status) <= 5) &&
+            (Number(sitem.status) >= 1 && Number(sitem.status) <= 3) 
+            ? 'el-button-group' 
+            :'div'
+          ">
             <el-button
-            icon="el-icon-arrow-left"
-            style="margin-left:10px"
-            plain
-            v-if="Number(sitem.status) >= 2 && Number(sitem.status) <= 5"
-            type="primary" size="mini"
-             @click="handleSwitchNode('prev')">上一节点
+             icon="el-icon-arrow-left"
+             style="margin-left:10px"
+             plain
+             v-if="Number(sitem.status) >= 2 && Number(sitem.status) <= 5"
+             type="primary" 
+             size="mini"
+            @click="handleSwitchNode('prev')">
+             上一节点
             </el-button>
-          <!-- </el-tooltip> -->
-
-            <!-- <el-tooltip content="切换到下一节点" placement="top"> -->
-              <el-button 
-            plain
+            <el-button 
+              plain
               v-if="Number(sitem.status) >= 1 && Number(sitem.status) <= 3"
-              type="primary" size="mini" @click="handleSwitchNode('next')">
+              type="primary" 
+              size="mini" 
+              @click="handleSwitchNode('next')">
               下一节点
               <i class="el-icon-arrow-right"></i>
              </el-button>
-            <!-- </el-tooltip> -->
-          </el-button-group>  
+          </component>
+
+          <!-- <el-button-group> -->
+          <!-- </el-button-group>   -->
         </div>
       </template>
     </show-data-table>

+ 1 - 1
src/views/customerService/demandOrder/detail.vue

@@ -221,7 +221,7 @@ export default {
         }
 
         if(updatedStatus === 4 && this.selected.project !== 1){
-          const warn = this.selected.project === 0 ? '未选择结算函' : '只能选一个结算'
+          const warn = this.selected.project === 0 ? '未选择计划预算函' : '只能选一个计划预算函'
           this.$message.warning(warn)
           return
         }

+ 1 - 0
src/views/customerService/invoiceApply/columns.js

@@ -111,6 +111,7 @@ const invoiceApplyColumns = [
     span: 8
   },
   {
+    prop: 'store_name',
     label:'店铺名称',
     span:8
   },

+ 6 - 6
src/views/customerService/invoiceApply/components/demandModal.vue

@@ -52,14 +52,13 @@
               {{scope.row.participant_min}} ~ {{scope.row.participant_max}}
             </span> 人
           </template>
+
         <template #status="{ scope }">
           <el-tag
-            :size="tablebtnSize"
-            v-text="
-              (demandStatusOptions.find((item) => item.value == String(scope.row.status)) || {})
-                .label || '--'
+            size="mini"
+            v-text="(demandStatusOptions.find((item) => item.value == String(scope.row.status)) || {}).label || '--'
             "
-          ></el-tag>
+          />
         </template>
       </ex-table>
 
@@ -78,7 +77,7 @@ import { columns } from "./_columns"
 import dayjs from 'dayjs';
 export default {
   props:['visible'],
-  mixins:[pageInfo],
+  mixins:[ pageInfo ],
   computed:{
     _visible:{
       get(){
@@ -151,6 +150,7 @@ export default {
         status: "12"
       });
 
+
       if (res && res.code === 1 && res.data) {
         this.tableData = res.data.list;
         this.pageInfo.total = Number(res.data.count);

+ 35 - 23
src/views/customerService/invoiceApply/detail.vue

@@ -31,23 +31,19 @@
                       <p style="margin-right:5px">{{sitem.invoice_title}}</p>
 
                       <el-popover placement="top" trigger="hover">
-                        <ul>
-                          <li>
-                            纳税人识别号 : {{sitem.invoice_code}}
-                          </li>
-                          <li>
-                            地址: {{sitem.invoice_addr}} 
-                          </li>
-                          <li>
-                            电话 : {{sitem.invoice_mobile}}
-                          </li>
-                          <li>
-                            开户行 : {{sitem.invoice_bank}} 
-                          </li>
-                          <li>
-                            开户行账号 : {{sitem.invoice_bankNo}}
-                          </li>
-                        </ul>
+                        <show-data-table 
+                          :sitem="sitem"
+                          style="padding: -5px 0 10px 0"
+                          :columns="invoiceColumns"
+                        >
+                          <template #tel>
+                            {{sitem.invoice_addr}} {{sitem.invoice_mobile}}
+                          </template>
+
+                          <template #bank>
+                            {{sitem.invoice_bank}} {{sitem.invoice_bankNo}}
+                          </template>
+                        </show-data-table>
 
                         <template #reference>
                           <i class="el-icon-warning-outline" />
@@ -73,7 +69,7 @@
               </el-collapse-item>
 
               <el-collapse-item title="需求订单详情" name="3">
-                <demand-detail id="2" />
+                <demand-detail :id="sitem.req_id" />
               </el-collapse-item>
               
               <el-collapse-item title="发票申请管理" name="5" v-if="Number(sitem.status) === 2">
@@ -86,14 +82,14 @@
     </div>
   </div>
 </template>
+
 <script>
+import { demandColumns, statusList, invoiceApplyColumns} from "./columns";
 import asyncRequest from "@/apis/service/customerService/invoiceApply";
-import demandRequest from "@/apis/service/customerService/demandOrder";
 import resToken from "@/mixins/resToken";
 import { mapGetters } from "vuex";
 
 import CreateInvoiceApply from "./components/createInvoiceApply.vue"
-import { demandColumns, statusList, invoiceApplyColumns} from "./columns";
 import { invoiceTypeList } from '@/assets/js/statusList';
 
 export default {
@@ -139,6 +135,25 @@ export default {
       moneyDirItem: {},
       moneyItem: {},
       BossItem: {},
+      invoiceColumns:[
+        {
+          prop: 'invoice_code',
+          label: '纳税人识别号',
+          span:24
+        },
+        {
+          prop: 'tel',
+          label: '地址、电话',
+          span:24,
+          _slot_: 'tel'
+        },
+        {
+          prop: 'bank_account',
+          label: '开户行及账号',
+          span:24,
+          _slot_:'bank'
+        }
+      ],
     };
   },
   mounted() {
@@ -162,9 +177,6 @@ export default {
     handleClick(row) {
       console.log(row);
     },
-    async refresh() {
-      this.routeReGoto("bargainList", {});
-    },
     async initData() {
       this.loading = true;
       const invoice = await asyncRequest.detail({

+ 6 - 8
src/views/customerService/workbench/detail.vue

@@ -145,9 +145,9 @@ export default {
   name: "workbenchDetail",
   components: {
     baseForm,
+    ActivityLetter,
     PlanBudgetLetter,
     EvaluteBudgetLetter,
-    ActivityLetter
   },
   mixins: [resToken],
   computed: {
@@ -356,17 +356,15 @@ export default {
     async refresh(refPrefix){
       const currentRef = refPrefix + 'Letter'
       const letters = ['evaLetter','actLetter','proLetter']
-      letters.forEach(letter => {
-        if(letter !== currentRef) this.$refs[letter].searchList()
-      })
+      letters.forEach(letter => letter !== currentRef && this.$refs[letter].searchList())
     },
     async requsetProjectLetter(plan_info, file, store_id){
       const params = {
+        file,
         store_id,
-        req_id:this.sitem.id,
-        plan_type: 3,
         plan_info,
-        file
+        plan_type: 3,
+        req_id:this.sitem.id,
       }
 
       const result = await asyncRequest.planCreate(params)
@@ -436,7 +434,7 @@ export default {
       right: 16px;
       padding:0px 10px 10px 10px;
       width: calc(100% - 318px);
-      height: calc(100vh - 276px);
+      height: calc(100vh - 96px);
       overflow-y: scroll;
       background: #fff;
       overflow-x: hidden;

+ 5 - 44
src/views/customerService/workbench/index.vue

@@ -4,7 +4,7 @@
         <div class="workbench-main__search">
           <div style="width: 100%">
             <el-row>
-              <el-col :span="4" style="width: 351px;">
+              <!-- <el-col :span="4" style="width: 351px;"> -->
                 <!-- <period-date-picker
                   :start="parmValue.addtime_start"
                   :end="parmValue.addtime_end"
@@ -13,9 +13,7 @@
                   placeholder="创建"
                   @timeReturned="(evt) => handleTime(evt, 'create')"
                 /> -->
-              </el-col>
-
-
+              <!-- </el-col> -->
 
                <el-col :span="4" style="padding-right:10px">
                 <el-select v-model="parmValue.status" style="width:100%" size="mini" placeholder="订单状态" @change="
@@ -114,19 +112,6 @@
                 " />
               </el-col> -->
             </el-row>
-
-            <!-- <el-row style="margin-top:10px"> -->
-              <!-- <el-col :span="4" style="width: 341px;">
-                <period-date-picker
-                  :start="parmValue.req_start"
-                  :end="parmValue.req_end"
-                  :width="'154px'"
-                  :size="searchSize"
-                  @timeReturned="evt => handleTime(evt,'consultation')"
-                  placeholder="咨询截止"
-                />
-              </el-col> -->
-            <!-- </el-row> -->
           </div>
         </div>
 
@@ -260,7 +245,6 @@ export default {
       sitem: {},
       list1: [],
       list: [],
-      timerMaps:{},
       countdownMaps:{},
       parmValue: {
         participant:"",
@@ -333,7 +317,6 @@ export default {
     this.searchList(true);
   },
   beforeDestroy() {
-    this.clearTimers()
     if (this.timer) {
       clearInterval(this.timer);
     }
@@ -416,9 +399,9 @@ export default {
     },
 
     // 时间
-    async handleTime(e) {
-      this.parmValue.starttime = e.startTime || "";
-      this.parmValue.endtime = e.endTime || "";
+    async handleTime(evt) {
+      this.parmValue.starttime = evt.startTime || "";
+      this.parmValue.endtime = evt.endTime || "";
       if (
         (this.parmValue.starttime !== "" && this.parmValue.endtime !== "") ||
         (this.parmValue.starttime === "" && this.parmValue.endtime === "")
@@ -488,15 +471,6 @@ export default {
         await this.searchList();
       }
     },
-    clearTimers(){
-      Object.keys(this.timerMaps).forEach(timer => {
-        if(!timer) return
-        window.clearInterval(timer)
-      })
-
-      this.timerMaps = {}
-      this.countdownMaps = {}
-    },
     getTime(value) {
       var secondTime = parseInt(value);// 秒
       var minuteTime = 0;// 分
@@ -532,8 +506,6 @@ export default {
     },
     // 刷新表格
     async searchList() {
-      this.clearTimers()
-
       if (!this.loading) {
       for(const field of Object.keys(mapDateFields)){
         const { start: startProp, end: endProp, label } = mapDateFields[field]
@@ -564,17 +536,6 @@ export default {
             }
           },{})
 
-          this.timerMaps = list.reduce((prev,current) => {
-            return {
-              ...prev,
-              [current.id]:setInterval(() => {
-                let now = dayjs(new Date())
-                const minuend = now.diff(current.req_endtime, 'second')
-                this.countdownMaps[current.id] = minuend < 0 ? this.getTime(Math.abs(minuend)) : '00:00:00'
-              },1000)
-            }
-          },{})
-
           this.list = list
           this.pageInfo.total = count
         }  else {

+ 5 - 9
src/views/operate/supplier/index.vue

@@ -2,13 +2,14 @@
   <div class="supplier pagePadding">
     <ex-table
       v-loading="loading"
-      :table="table"
-      :data="tableData"
       :columns="columns"
+      :data="tableData"
       :page="pageInfo"
+      :table="table"
       :size="size"
       @page-curr-change="handlePageChange"
       @page-size-change="handleSizeChange"
+      @selection="handleSelection"
       @screen-reset="
         pageInfo.curr = 1;
         parmValue.page = 1;
@@ -19,7 +20,6 @@
         parmValue.page = 1;
         searchList();
       "
-      @selection="handleSelection"
     >
       <template #table-header="{}">
         <div style="width: 100%">
@@ -57,14 +57,10 @@
               </el-select>
             </el-col>
             <el-col :span="3" class="fr" style="width: 66px; padding: 0 0 0 10px">
-              <el-button type="primary" :size="searchSize" @click="searchList">
-                刷新
-              </el-button>
+              <el-button type="primary" :size="searchSize" @click="searchList">刷新</el-button>
             </el-col>
             <el-col :span="3" class="fr" style="width: 66px; padding: 0 0 0 10px">
-              <el-button type="warning" :size="searchSize" @click="restSearch">
-                重置
-              </el-button>
+              <el-button type="warning" :size="searchSize" @click="restSearch">重置</el-button>
             </el-col>
           </el-row>
           <el-row>

+ 1 - 1
src/views/platformService/settlement/detail.vue

@@ -22,7 +22,7 @@
             </el-collapse-item>
 
             <el-collapse-item title="需求订单详情" name="2">
-              <demand-detail id="2" />
+              <demand-detail :id="sitem.req_id" />
             </el-collapse-item>
 
             <el-collapse-item