Эх сурвалжийг харах

团队管理:关联团队;团购订单:关联团队代付

shipeng 2 сар өмнө
parent
commit
577f16bef6

+ 17 - 0
src/api/team/teamMr.js

@@ -17,6 +17,15 @@ export const teamPageList = (query) => {
     params: query
   })
 }
+//
+export const getBindTeamList = (query) => {
+  return request({
+    url: '/member/marketTeam/getBindTeamList',
+    method: 'get',
+    params: query
+  })
+}
+
 
 // 新增/修改
 export const saveAndEdit = (data) => {
@@ -35,6 +44,14 @@ export const deleteById = (id) => {
     params: {id:id}
   })
 }
+// 解除绑定
+export const removeBindApi = (id) => {
+  return request({
+    url: '/member/marketTeam/delTeamBind',
+    method: 'delete',
+    params: {teamId: id}
+  })
+}
 
 // 修改状态
 export const updateStatus = (data) => {

+ 51 - 3
src/views/order/groupBuyingMr/index.vue

@@ -300,7 +300,14 @@
               <span>{{ scope.row.invoiceTime }}</span>
             </template>
           </el-table-column>
-          <el-table-column label="操作" align="center" width="100" class-name="small-padding fixed-width">
+          <el-table-column label="是否其他团队代付" align="center" prop="ifRepay">
+            <template slot-scope="scope">
+              <el-tag type="danger" v-if="scope.row.ifRepay  == '0'">否</el-tag>
+              <el-tag type="success" v-else-if="scope.row.ifRepay  == '1'">是</el-tag>
+              <span v-else></span>
+            </template>
+          </el-table-column>
+          <el-table-column label="操作" align="center" width="120px" class-name="small-padding fixed-width">
             <template slot-scope="scope">
               <el-button
                 size="mini"
@@ -405,6 +412,21 @@
         @close="handleCorporatePayClose"
         :before-close="handleCorporatePayClose">
         <el-form v-loading="corporatePayLoading" :model="form" :rules="corporatePayRules" ref="ruleForm1" label-width="120px" class="demo-ruleForm pay-type-dialog">
+          <el-form-item v-if="form.payWay != 3" label="支付团队:" prop="payerId">
+            <el-select
+              v-model="form.payerId"
+              clearable
+              style="width: 100%"
+              placeholder="请输入团队名称"
+              >
+              <el-option
+                v-for="item in nameList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id">
+              </el-option>
+            </el-select>
+          </el-form-item>
           <el-form-item v-if="!form.eaitType" label="支付方式" prop="payWay">
             <el-radio-group v-model="form.payWay">
               <el-radio :label="1">对公转账</el-radio>
@@ -513,7 +535,7 @@ import {
   balancePay,
   creditPay
  } from '@/api/order/groupBuyingMr';
- import { getSelectById as getBalanceInfo } from '@/api/team/teamMr'
+ import { getBindTeamList, getSelectById as getBalanceInfo } from '@/api/team/teamMr'
 import { orderInfoCancel } from '@/api/windowTicketSales/ticketingSales';
 import detailsDia from "./dialog/details.vue";
 import resetOrder from "./dialog/resetOrder.vue";
@@ -619,6 +641,7 @@ export default {
         },
         balanceInfo: null, // 余额信息
         currentOrder: null, // 当前操作的订单
+        nameList: [],
     };
   },
   created() {
@@ -648,6 +671,25 @@ export default {
     hasPermi(value){
       return auth.hasPermi(value)
     },
+    //
+    // handleChange(val) {
+    //   if(val === 3) {
+    //     this.$set(this.form,'payerId','')
+    //   }
+    // },
+    // 查询团队列表
+    getTeamList(id) {
+      this.nameList = []
+      getBindTeamList({
+        teamId: id
+      })
+      .then(response => {
+        console.log(response,'111111');
+        this.nameList = response.data.rows;
+      }).catch(()=>{
+        this.nameList = []
+      })
+    },
     /** 查询列表 */
     getList(value) {
       this.loading = true;
@@ -862,6 +904,7 @@ export default {
           this.currentOrder = row
           
           let res = await getSelectById(row.id)
+          this.getTeamList(row.id);
           this.form.orderId = row.id
           this.$set(this.form,'photoList',[])
           this.form.eaitType = null
@@ -875,11 +918,14 @@ export default {
           } catch(err) {
             console.error('获取余额信息失败', err)
           }
-
+          console.log(res.data,'res.data.corporate');
+          this.getTeamList(res.data.teamId);
+          this.$set(this.form,'payerId',res.data.teamId)
           if(res.data.corporate && JSON.stringify(res.data.corporate) != '{}'){
             let urlList = res.data.corporate.voucherUrl.split(',')||[]
             this.form.eaitType = 1
             this.$set(this.form,'payWay',1)
+            // this.$set(this.form,'payerId',res.data.corporate.payerId)
             this.$set(this.form,'rePaymentTime','')
             this.$set(this.form,'photoList',urlList)
             this.$set(this.form.corporate,'remark',res.data.corporate.remark)
@@ -887,6 +933,7 @@ export default {
             this.form.eaitType = 2
             let urlList = res.data.teamCredit.voucherUrl.split(',')||[]
             this.$set(this.form,'payWay',2)
+            // this.$set(this.form,'payerId',res.data.corporate.payerId)
             this.$set(this.form,'rePaymentTime',res.data.teamCredit.repaymentTime)
             this.$set(this.form,'photoList',urlList)
             this.$set(this.form.corporate,'remark',res.data.teamCredit.remark)
@@ -896,6 +943,7 @@ export default {
             this.$set(this.form,'rePaymentTime','')
             this.$set(this.form,'photoList',[])
             this.$set(this.form.corporate,'remark','')
+            // this.$set(this.form,'payerId','')
           }
           this.$nextTick(()=>{
             this.$refs.ruleForm1.clearValidate()

+ 79 - 2
src/views/team/teamMr/dialog/addAndEdit.vue

@@ -186,6 +186,28 @@
             style="width: 100%;"
           />
         </el-form-item>
+        <el-form-item label="绑定团队:" prop="bindTeamId">
+          <el-select
+            v-model="form.bindTeamId"
+            filterable
+            remote
+            :disabled="isDisabled"
+            reserve-keyword
+            clearable
+            style="width: 82%;margin-right: 8px;"
+            placeholder="请输入关键词进行查询并绑定"
+            :remote-method="getTeamList"
+            :loading="teamListLoading"
+          >
+            <el-option
+              v-for="item in teamList"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id">
+            </el-option>
+          </el-select>
+          <el-button type="primary" :disabled="!isDisabled" @click="removeBind">解绑</el-button>
+        </el-form-item>
       </el-form>
     </div>
     <span slot="footer" class="dialog-footer">
@@ -207,7 +229,7 @@
 
 <script>
 // import { updateNoticeMgr } from "@/api/system/noticeMgr";
-import { pageList } from '@/api/team/teamMr'
+import { pageList, removeBindApi } from '@/api/team/teamMr'
 import { saveAndEdit, getSelectById, searchCompanysApi } from "@/api/team/teamMr";
 import Editor from "@/components/Editor";
 import { getToken } from "@/utils/auth";
@@ -281,7 +303,11 @@ export default {
       nameList: [],
       nameListTime: null,
       nameListLoading: null,
-      showNameList: false
+      showNameList: false,
+      teamList: [],
+      teamListTime: null,
+      teamListLoading: null,
+      isDisabled: false,
     };
   },
   methods: {
@@ -306,6 +332,34 @@ export default {
         });
       }
     },
+    /** 查询团队列表 */
+    getTeamList(value) {
+      if(!value) {
+        this.teamList = []
+        return
+      }
+      if(this.teamListTime) {
+        clearTimeout(this.teamListTime)
+      }
+      this.teamListTime = setTimeout(()=>{
+        this.teamListLoading = true;
+        this.teamList = []
+        pageList({
+          pageNum: 1,
+          pageSize: 999,
+          name: value,
+          checkStatus: 1
+        })
+        .then(response => {
+            this.teamList = response.data.rows;
+            this.teamListLoading = false;
+          }
+        ).catch(()=>{
+          this.teamList = []
+          this.teamListLoading = false;
+        })
+      },1000)
+    },
     /** 查询列表 */
     getList(value) {
       if(!value) {
@@ -342,6 +396,14 @@ export default {
       const id = row.id
       getSelectById(id).then(response => {
         const obj = response.data;
+        if(obj.bindTeamId) {
+          let index = obj.bindTeamName.indexOf("(");
+          let resVal = index === -1 ? obj.bindTeamName : obj.bindTeamName.substring(0, index); 
+          this.getTeamList(resVal);
+          this.isDisabled = true
+        } else {
+          this.isDisabled = false
+        }
         this.$nextTick(() => {
           this.$nextTick(() => {
             this.$set(this.form, 'id', obj.id);
@@ -358,6 +420,7 @@ export default {
             this.$set(this.form, 'haveContract', obj.haveContract);
             this.$set(this.form, 'contractReason', obj.contractReason);
             this.$set(this.form, 'remark', obj.remark);
+            this.$set(this.form, 'bindTeamId', obj.bindTeamId);
             this.changeType(this.form.type)
             if(obj.contractImg){
               if(obj.contractImg.indexOf(',') > -1){
@@ -382,6 +445,18 @@ export default {
         });
       });
     },
+    // 团队解绑 // bindTeamName
+    removeBind() {
+      removeBindApi(this.form.id).then(res => {
+        console.log(res,'res');
+        if(res.code === 200) {
+          this.$message.success("解绑成功!");
+          this.$set(this.form, 'bindTeamId', '');
+          this.isDisabled = false
+        }
+        }).catch(()=>{
+      })
+    },
     /**
      * 保存
      * @date 2023-11-22
@@ -434,6 +509,8 @@ export default {
       this.$set(this.form, 'haveContract', '');
       this.$set(this.form, 'contractReason', '');
       this.$set(this.form, 'remark', '');
+      this.$set(this.form, 'bindTeamId', '');
+      this.isDisabled = false;
     },
     /**
      * 关闭弹框

+ 3 - 0
src/views/team/teamMr/dialog/auditBox.vue

@@ -75,6 +75,9 @@
             </div>
           </div>
         </el-form-item>
+        <el-form-item label="绑定团队:" >
+          <span>{{ form.bindTeamName }}</span>
+        </el-form-item>
         <el-form-item label="审核备注:">
           <span style="color: #ccc;">(注意:驳回时请填写备注)</span>
         </el-form-item>

+ 1 - 1
src/views/team/teamMr/index.vue

@@ -116,7 +116,7 @@
       </el-table-column>
       <el-table-column label="审核时间" align="center" prop="checkTime" />
       <el-table-column label="审核人" align="center" prop="checkBy" />
-      <el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">
+      <el-table-column label="操作" align="center" width="200" fixed="right" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
             size="mini"