Browse Source

1. 新增

MONSTER-ygh 9 months ago
parent
commit
58cac57e24

+ 10 - 1
src/api/distribution/personnelMr.js

@@ -27,7 +27,7 @@ export const deleteById = (id) => {
   })
 }
 
-// 修改状态
+// 账号修改状态
 export const updateStatus = (data) => {
   return request({
     url: '/member/marketPersons/insertOrUpdate',
@@ -36,6 +36,15 @@ export const updateStatus = (data) => {
   })
 }
 
+// 推广码修改状态
+export const updateQrStatusApi = (data) => {
+  return request({
+    url: '/member/marketPersons/updateQrcodeStatus',
+    method: 'get',
+    params: data
+  })
+}
+
 export function getSelectById(id) {
   return request({
     url: '/member/marketPersons/selectById?id=' + id,

+ 41 - 2
src/views/distribution/personnelMr/index.vue

@@ -163,7 +163,7 @@
               <dict-tag :options="dict.type.user_allow_withdraw" :value="scope.row.allowWithdraw"/>
             </template>
           </el-table-column>
-          <el-table-column label="状态" align="center">
+          <el-table-column label="账号状态" align="center">
             <template slot-scope="scope">
               <el-switch
                 @change="ionlineApi(scope.row)"
@@ -174,6 +174,17 @@
               </el-switch>
             </template>
           </el-table-column>
+          <el-table-column label="推广码状态" align="center">
+            <template slot-scope="scope">
+              <el-switch
+                @change="updateQrStatusFun(scope.row)"
+                v-model="scope.row.qrcodeStatus"
+                :active-value="1"
+                active-color="#13ce66"
+                inactive-color="#ff4949">
+              </el-switch>
+            </template>
+          </el-table-column>
           <el-table-column label="销售人员" align="center" prop="salePerson" />
           <el-table-column label="添加时间" align="center" prop="createTime" width="160">
             <template slot-scope="scope">
@@ -359,7 +370,17 @@
 
 <script>
 
-import { pageList, deleteById, updateStatus, configUpdate, getSetInfo, getRetailQrcode ,batchUpdateRetailRate,downOrderListXls} from '@/api/distribution/personnelMr'
+import { 
+  pageList, 
+  deleteById, 
+  updateStatus, 
+  configUpdate, 
+  getSetInfo, 
+  getRetailQrcode ,
+  batchUpdateRetailRate,
+  downOrderListXls,
+  updateQrStatusApi
+} from '@/api/distribution/personnelMr'
 import addAndEdit from "./dialog/addAndEdit.vue";
 import promotionCode from "./dialog/promotionCode.vue";
 import { exportExcel } from '@/utils/exportexcel'
@@ -773,6 +794,24 @@ export default {
           this.$message.info('您已取消导出!');
         });
     },
+    /** 推广码  */
+    updateQrStatusFun(row) {
+      this.$confirm("是否" + (!row.qrcodeStatus ? '禁用' : '启用') +  row.name + '的推广码?' , '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        updateQrStatusApi({ id: row.id, qrcodeStatus: !row.qrcodeStatus ? 0 : 1 }).then((res) => {
+          if (res.code == 200) {
+            this.$message({
+              type: 'success',
+              message: '操作成功!'
+            });
+            this.getList();
+          }
+        });
+      }).catch(() => { this.getList()});
+    }
   },
   beforeDestroy() {
     this.resizeObserver.unobserve(this.$refs.queryFormBox);

+ 2 - 2
src/views/officesale/ticketingSales.vue

@@ -151,8 +151,8 @@
                     <el-button size="mini" type="warning"  @click="clearSeatSelectListAll">清空已选座位</el-button>
                 </div>
                 <div style="width: 100%;display: flex;justify-content: center;height: 30px;">
-                    <el-button size="mini" type="warning" :loading="lockOrUnLockLoading" @click="lockOrUnLockFun(0)">{{ seatSelectListNo.length>0?'解锁':'锁定' }}</el-button>
-                    <el-button size="mini" type="primary" @click="increaseViewersFun">预约</el-button>
+                    <el-button size="mini" v-hasPermi="['officesale:ticketingSales:lock']" type="warning" :loading="lockOrUnLockLoading" @click="lockOrUnLockFun(0)">{{ seatSelectListNo.length>0?'解锁':'锁定' }}</el-button>
+                    <el-button size="mini" v-hasPermi="['officesale:ticketingSales:buy']" type="primary" @click="increaseViewersFun">预约</el-button>
                 </div>
             </div>
             

+ 1 - 1
src/views/otaMr/tiktok/index.vue

@@ -36,7 +36,7 @@
       <el-table-column label="演出厅" align="center" prop="performHallName" />
       <el-table-column label="剧目名称" align="center" prop="performName" />
       <el-table-column label="商品名称" align="center" prop="goodsName" />
-      <el-table-column label="时刻信息" align="center" prop="goodsName1">
+      <el-table-column label="当前上线场次" align="center" prop="goodsName1">
         <template slot-scope="scope">
           <span>{{ scope.row.times }}</span>
         </template>

+ 4 - 1
src/views/ticket/ticketMr/dialog/addAndEdit.vue

@@ -152,6 +152,7 @@
               <el-checkbox v-model="form.channelWx">小程序</el-checkbox>
               <el-checkbox v-model="form.channelWindow">窗口</el-checkbox>
               <el-checkbox v-model="form.channelAutoSale">自助售/取票机</el-checkbox>
+              <el-checkbox v-model="form.channelPersonSale">小程序(分销)</el-checkbox>
             </el-form-item>
             <el-form-item label="税率:" prop="taxRate" label-width="100px">
               <el-select
@@ -474,7 +475,8 @@ export default {
           this.$set(this.form, 'channelWx', obj.goodsPerform.channelWx == 0);
           this.$set(this.form, 'channelWindow', obj.goodsPerform.channelWindow == 0);
           this.$set(this.form, 'channelAutoSale', obj.goodsPerform.channelAutoSale == 0);
-
+          this.$set(this.form, 'channelPersonSale', obj.goodsPerform.channelPersonSale == 0);
+          
           this.$set(this.form, 'backStatus', obj.goodsPerform.backStatus);
           this.$set(this.form, 'backTime', '1');
           this.$set(this.form, 'taxRate', obj.taxRate);
@@ -551,6 +553,7 @@ export default {
             postMap.goodsPerform.channelWx = this.form.channelWx ? 0 : 1;
             postMap.goodsPerform.channelWindow = this.form.channelWindow  ? 0 : 1;
             postMap.goodsPerform.channelAutoSale = this.form.channelAutoSale  ? 0 : 1;
+            postMap.goodsPerform.channelPersonSale = this.form.channelPersonSale  ? 0 : 1;
             postMap.goodsPerform.backStatus = this.form.backStatus;
             if(this.form.backStatus == '0') {
               postMap.performRefundRule.days = this.form.days;

+ 6 - 3
src/views/ticket/ticketMr/dialog/details.vue

@@ -71,11 +71,14 @@
         </el-col>
         <el-col :span="24" v-if="form.goodsPerform">
           <div class="grid-content bg-purple item-class">售票渠道: <span>{{ 
-          (form.goodsPerform.channelWx == 0 ? '小程序' : '')
+          (form.goodsPerform.channelWx == 0 ? '小程序,' : '')
            + ' ' + 
-           (form.goodsPerform.channelWindow == 0 ? '窗口' : '')
+           (form.goodsPerform.channelWindow == 0 ? '窗口,' : '')
            + ' ' + 
-           (form.goodsPerform.channelAutoSale == 0 ? '自助售/取票机' : '')}}</span></div>
+           (form.goodsPerform.channelAutoSale == 0 ? '自助售/取票机,' : '')
+           + ' ' + 
+           (form.goodsPerform.channelPersonSale == 0 ? '小程序(分销)' : '')
+           }}</span></div>
         </el-col>
         <el-col :span="12">
           <div class="grid-content bg-purple item-class">税率: <span>{{ form.taxRate }}</span></div>

+ 13 - 3
src/views/venue/schedulingMr/dialog/addAndEdit.vue

@@ -150,6 +150,12 @@
             </el-table-column>
           </el-table>
         </el-form-item>
+        <el-form-item label="库存模式" prop="useStock">
+          <el-radio-group v-model="form.useStock">
+            <el-radio :label="0">演出厅库存</el-radio>
+            <el-radio :label="1">默认渠道库存</el-radio>
+          </el-radio-group>
+        </el-form-item>
       </el-form>
     </div>
     <span slot="footer" class="dialog-footer">
@@ -197,7 +203,8 @@ export default {
       form: {
         id: undefined,
         timeList: [],
-        insertType: '1'
+        insertType: '1',
+        useStock: 0
       },
       rules: {
         venueId: [{ required: true, message: "请选择场馆", trigger: ["change","blur"] }],
@@ -206,6 +213,7 @@ export default {
         performDate: [{ required: true, message: "请选择日期", trigger: ["change","blur"] }],
         timeList: [{ required: true, message: "请添加场次", trigger: ["change","blur"] }],
         goodsIds: [{ required: true, message: "请选择票务", trigger: ["change","blur"] }],
+        useStock: [{ required: true, message: "请选择库存模式", trigger: ["change","blur"] }],
       },
       uploadObj: {
         url: process.env.VUE_APP_UPLOAD_FILE_API + "/upload/single/minio",
@@ -258,6 +266,7 @@ export default {
           this.$set(this.form, 'performDate', obj.performDate);
           this.$set(this.form, 'auditoriumId', obj.auditoriumId);
           this.$set(this.form, 'theatreName', obj.theatreName);
+          this.$set(this.form, 'useStock', obj.useStock);
           if(obj.goodsIds) {
             this.$set(this.form, 'goodsIds', obj.goodsIds.split(','));
           }
@@ -278,7 +287,8 @@ export default {
         this.title = "新增排期";
         this.form = {
             id: undefined,
-            timeList: []
+            timeList: [],
+            useStock: 0
         };
         if(type){
           this.$set(this.form, 'insertType', '2');
@@ -388,7 +398,7 @@ export default {
             postEdit.auditoriumId = this.form.auditoriumId
             postEdit.performDate = this.form.performDate
             postEdit.timeList = this.form.timeList
-
+            postEdit.useStock = this.form.useStock
             postEdit.goodsIds = this.form.goodsIds.join(',')
             this.loading = true;
             // const { code } = this.form.insertType == '2' ? await addSave({ ...this.form }) : this.form.id ? await saveAndEdit({ ...postEdit }) : await addSave({ ...this.form });

+ 7 - 2
src/views/venue/schedulingMr/dialog/addStock.vue

@@ -27,7 +27,7 @@
             <el-input-number placeholder="请输入库存" v-model="tableData[index].stock" controls-position="right"></el-input-number>
           </div>
           <div v-if="tableId" style="margin-left: 20px;">
-            <el-radio-group v-model="tableData[index].status">
+            <el-radio-group v-model="tableData[index].status" @change="(value)=>changeRadio(value,index)">
               <div>
                 <el-radio :label="0">在售</el-radio>
                 <el-input-number placeholder="请输入库存" :disabled="tableData[index].status == 1" v-model="tableData[index].stock" controls-position="right"></el-input-number>
@@ -84,7 +84,7 @@
         this.stock = JSON.parse(JSON.stringify(data))
         this.tableData = JSON.parse(JSON.stringify(data.chennelStock))
         this.allData = JSON.parse(JSON.stringify(allData))
-        this.title = "渠道默认库存设置" + `(可售库存:${this.stock.stock})`
+        this.title = title 
       },
       /**  票务信息  */
       async saveCommonConfigFun(value){
@@ -160,6 +160,11 @@
         //   this.loading = false;
         // }
       },
+      changeRadio(value,index) {
+        if(value == 1){
+          this.$set(this.tableData[index],'stock',0)
+        }
+      }
     },
   };
   </script>

+ 5 - 5
src/views/venue/schedulingMr/dialog/stockAll.vue

@@ -21,7 +21,7 @@
       class="dialog"
       v-loading="loading"
       >
-      <span style="padding: 0 0 10px;display: flex;font-size: 16px;font-weight: 600;">可售总库存:{{ stockAllNum }}</span>
+      <span style="padding: 0 0 10px;display: flex;font-size: 16px;font-weight: 600;">渠道库存总计:{{ stockAllNum }}</span>
         <el-table
             :data="tableData"
             style="width: 100%">
@@ -31,7 +31,7 @@
             </el-table-column>
             <el-table-column
                 prop="stock"
-                label="可售库存(个)">
+                label="渠道库存小计(个)">
             </el-table-column>
             <el-table-column
                 prop="address"
@@ -67,7 +67,7 @@
     components: { addStock },
     data() {
       return {
-        title: "场次库存设置",
+        title: "",
         model: "EDIT",
         open: false,
         loading: false,
@@ -86,7 +86,7 @@
        */
       async openDialog(title,row) {
         this.open = true;
-        this.title = "场次库存设置";
+        this.title = title;
         this.loading = true;
         this.tableId = row && row.id ? row.id : ''
         await this.commonConfigAllFun()
@@ -189,7 +189,7 @@
       },
       /**  场次库存设置   */
       addStockFun(row) {
-        this.$refs["addStock"].openDialog('',row,this.tableId,this.tableData);
+        this.$refs["addStock"].openDialog(!this.tableId ? '修改渠道库存':'场次库存修改',row,this.tableId,this.tableData);
       },
       /**
        * 保存

+ 4 - 3
src/views/venue/schedulingMr/index.vue

@@ -102,7 +102,7 @@
           type="success"
           plain
           size="mini"
-          @click="handleStockAll"
+          @click="handleStockAll()"
           v-hasPermi="['schedulingMr:schedulingMr:stock']"
         >默认渠道库存设置</el-button>
       </el-col>
@@ -133,7 +133,7 @@
           <span>{{ scope.row.performTimeEnd }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="可售总库存" align="center" prop="saleSeatNum" />
+      <!-- <el-table-column label="可售总库存" align="center" prop="saleSeatNum" /> -->
       <el-table-column label="状态" align="center" prop="status">
         <template slot-scope="scope">
           <el-tag type="success" v-if="scope.row.status == '1'">启用</el-tag>
@@ -404,7 +404,8 @@ export default {
       this.newObj = obj;
     },
     handleStockAll(row) {
-      this.$refs["stockAll"].openDialog("新增数据",row);
+      console.log("row===",row)
+      this.$refs["stockAll"].openDialog(!row?"默认渠道库存设置":'场次库存修改',row);
     }
   }
 };

+ 2 - 2
src/views/windowTicketSales/ticketingSales.vue

@@ -151,8 +151,8 @@
                     <el-button size="mini" type="warning"  @click="clearSeatSelectListAll">清空已选座位</el-button>
                 </div>
                 <div style="width: 100%;display: flex;justify-content: center;height: 30px;">
-                    <el-button size="mini" type="warning" :loading="lockOrUnLockLoading" @click="lockOrUnLockFun(0)">{{ seatSelectListNo.length>0?'解锁':'锁定' }}</el-button>
-                    <el-button size="mini" type="primary" @click="increaseViewersFun">购票</el-button>
+                    <el-button size="mini" v-hasPermi="['windowTicketSales:ticketingSales:lock']" type="warning" :loading="lockOrUnLockLoading" @click="lockOrUnLockFun(0)">{{ seatSelectListNo.length>0?'解锁':'锁定' }}</el-button>
+                    <el-button size="mini" v-hasPermi="['windowTicketSales:ticketingSales:buy']" type="primary" @click="increaseViewersFun">购票</el-button>
                 </div>
             </div>