Browse Source

修改bug,订单添加售后按钮

yangg 1 year ago
parent
commit
c245584b05

+ 15 - 0
manager-admin/src/components/SkuEditor/src/helper.js

@@ -179,6 +179,21 @@ export const getSpecsByCategoryId = (category_id) => {
     loading: false
     loading: false
   })
   })
 }
 }
+ /*  export function getSpecsByCategoryId(params) {
+    return request({
+      url: 'admin/goods/specs',
+      method: 'get',
+      loading: false,
+      params
+    })
+  }
+  export function getSpecValues(spec_id) {
+    return request({
+      url: `admin/goods/specs/${spec_id}/values`,
+      method: 'get'
+    })
+  } */
+  
 
 
 /**
 /**
  * 模拟睡眠
  * 模拟睡眠

+ 81 - 221
manager-admin/src/components/SkuEditor/src/main.vue

@@ -1,12 +1,5 @@
 <template>
 <template>
-  <el-form
-    v-loading="loading"
-    ref="skuForm"
-    :model="skuForm"
-    :rules="skuRules"
-    size="small"
-    class="sku-editor"
-  >
+  <el-form v-loading="loading" ref="skuForm" :model="skuForm" :rules="skuRules" size="small" class="sku-editor">
     <div v-if="showSpecs && haveSpec" class="sku-editor-item">
     <div v-if="showSpecs && haveSpec" class="sku-editor-item">
       <span v-if="showLabel" class="label-text">规格信息:</span>
       <span v-if="showLabel" class="label-text">规格信息:</span>
       <div class="spec-list">
       <div class="spec-list">
@@ -20,103 +13,40 @@
         </div>
         </div>
         <template v-for="(sp, sp_index) in skuForm.selectedSpecs">
         <template v-for="(sp, sp_index) in skuForm.selectedSpecs">
           <el-form-item label="规格名:" class="spec-name">
           <el-form-item label="规格名:" class="spec-name">
-            <el-select
-              v-model="sp.spec_id"
-              default-first-option
-              @change="handleSpecChange"
-            >
-              <el-option
-                v-for="option in specList"
-                :key="option.spec_id"
-                :label="option.spec_name"
-                :value="option.spec_id"
-                :disabled="computedDisabledSpec(option.spec_id)"
-              />
+            <el-select v-model="sp.spec_id" default-first-option @change="handleSpecChange">
+              <el-option v-for="option in specList" :key="option.spec_id" :label="option.spec_name"
+                :value="option.spec_id" :disabled="computedDisabledSpec(option.spec_id)" />
             </el-select>
             </el-select>
-            <el-button
-              icon="el-icon-delete"
-              class="del-btn"
-              @click="handleDeleteSpec(sp_index)"
-            />
-            <el-checkbox
-              v-if="sp_index === 0"
-              label="规格图片"
-              v-model="sp.has_spec_image"
-            />
+            <el-button icon="el-icon-delete" class="del-btn" @click="handleDeleteSpec(sp_index)" />
+            <el-checkbox v-if="sp_index === 0" label="规格图片" v-model="sp.has_spec_image" />
           </el-form-item>
           </el-form-item>
-          <el-form-item
-            label="规格值:"
-            class="spec-values"
-            :class="{ 'no-spec-val': sp.spec_value_list.length === 0 }"
-          >
-            <div
-              v-for="(sv, sv_index) in sp.spec_value_list"
-              :key="sv_index"
-              class="spec-value-item"
-            >
+          <el-form-item label="规格值:" class="spec-values" :class="{ 'no-spec-val': sp.spec_value_list.length === 0 }">
+            <div v-for="(sv, sv_index) in sp.spec_value_list" :key="sv_index" class="spec-value-item">
               <div class="spec-value-select">
               <div class="spec-value-select">
-                <el-select
-                  v-model="sv.spec_value_id"
-                  default-first-option
-                  @change="
-                    (spec_val_id) =>
-                      handleSpecValChange(sp.spec_id, spec_val_id)
-                  "
-                >
-                  <el-option
-                    v-for="option in getSpecValueList(sp.spec_id)"
-                    :key="option.spec_value_id"
-                    :label="option.spec_value"
-                    :value="option.spec_value_id"
-                    :disabled="
-                      computedDisabledSpecVal(sp.spec_id, option.spec_value_id)
-                    "
-                  />
+                <el-select v-model="sv.spec_value_id" default-first-option @change="(spec_val_id) =>
+                  handleSpecValChange(sp.spec_id, spec_val_id)
+                  ">
+                  <el-option v-for="option in getSpecValueList(sp.spec_id)" :key="option.spec_value_id"
+                    :label="option.spec_value" :value="option.spec_value_id" :disabled="computedDisabledSpecVal(sp.spec_id, option.spec_value_id)
+                      " />
                 </el-select>
                 </el-select>
-                <el-button
-                  icon="el-icon-delete"
-                  class="del-btn"
-                  @click="handleDeleteSpecVal(sp_index, sv_index)"
-                />
+                <el-button icon="el-icon-delete" class="del-btn" @click="handleDeleteSpecVal(sp_index, sv_index)" />
               </div>
               </div>
-              <el-form-item
-                label=""
-                :prop="`selectedSpecs.${sp_index}.spec_value_list.${sv_index}.spec_image`"
-                class="spec-value-form-item"
-              >
-                <el-upload
-                  v-if="sp.has_spec_image"
-                  accept="image/*"
-                  list-type="picture-card"
-                  :action="MixinUploadApi"
-                  :file-list="
-                    sv.spec_image ? [{ url: sv.spec_image }] : undefined
-                  "
-                  :on-success="
-                    (file) =>
+              <el-form-item label="" :prop="`selectedSpecs.${sp_index}.spec_value_list.${sv_index}.spec_image`"
+                class="spec-value-form-item">
+                <el-upload v-if="sp.has_spec_image" accept="image/*" list-type="picture-card" :action="MixinUploadApi"
+                  :file-list="sv.spec_image ? [{ url: sv.spec_image }] : undefined
+                    " :on-success="(file) =>
                       handleSpecValImgUploadSuccess(sp_index, sv_index, file)
                       handleSpecValImgUploadSuccess(sp_index, sv_index, file)
-                  "
-                  :on-remove="() => handleSpecValImgRemove(sp_index, sv_index)"
-                  :limit="1"
-                  class="spec-value-upload"
-                >
+                      " :on-remove="() => handleSpecValImgRemove(sp_index, sv_index)" :limit="1"
+                  class="spec-value-upload">
                   <i class="el-icon-plus"></i>
                   <i class="el-icon-plus"></i>
                 </el-upload>
                 </el-upload>
               </el-form-item>
               </el-form-item>
             </div>
             </div>
-            <div
-              class="spec-value-item"
-              :class="{ 'has-img': sp.has_spec_image }"
-            >
-              <el-button
-                v-if="sp.spec_id"
-                type="text"
-                @click="handleAddSpecVal(sp_index)"
-                >添加规格值</el-button
-              >
-              <span v-else style="color: #999; font-size: 12px"
-                >请选择规格</span
-              >
+            <div class="spec-value-item" :class="{ 'has-img': sp.has_spec_image }">
+              <el-button v-if="sp.spec_id" type="text" @click="handleAddSpecVal(sp_index)">添加规格值</el-button>
+              <span v-else style="color: #999; font-size: 12px">请选择规格</span>
             </div>
             </div>
           </el-form-item>
           </el-form-item>
         </template>
         </template>
@@ -134,7 +64,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
         <!--  -->
         <!--  -->
-          <!--<el-table-column label="序列号" align="center" v-if="haveSn">
+        <!--<el-table-column label="序列号" align="center" v-if="haveSn">
         <template v-slot="{ row }">
         <template v-slot="{ row }">
              <el-input
              <el-input
               onKeyUp="value=value.replace(/[\W]/g,'')"
               onKeyUp="value=value.replace(/[\W]/g,'')"
@@ -145,100 +75,37 @@
             />
             />
           </template>
           </template>
         </el-table-column> -->
         </el-table-column> -->
-        <el-table-column
-          v-for="item in tableColumns"
-          :key="item.key"
-          align="center"
-        >
+        <el-table-column v-for="item in tableColumns" :key="item.key" align="center">
           <template v-slot:header="{ row }">
           <template v-slot:header="{ row }">
             <div>
             <div>
               <span>{{ item.name }}</span>
               <span>{{ item.name }}</span>
-              <el-tooltip
-                v-if="!!item.tip"
-                effect="dark"
-                :content="item.tip"
-                placement="top"
-              >
+              <el-tooltip v-if="!!item.tip" effect="dark" :content="item.tip" placement="top">
                 <i class="el-icon-warning" style="cursor: help"></i>
                 <i class="el-icon-warning" style="cursor: help"></i>
               </el-tooltip>
               </el-tooltip>
-              <el-popover
-                v-if="!!item.batch"
-                v-model="item.show_batch"
-                popper-class="sku-batch-popper"
-                placement="top"
-              >
-                <el-form
-                  size="mini"
-                  label-width="80px"
-                  label-position="right"
-                  @submit.native.prevent
-                >
-                  <el-form-item
-                    v-if="item.batchForm.prefix !== false"
-                    label="前缀字符"
-                  >
-                    <el-input
-                      v-model="item.batchForm.prefix"
-                      :maxlength="20"
-                      style="width: 100px"
-                      placeholder="选填"
-                    />
+              <el-popover v-if="!!item.batch" v-model="item.show_batch" popper-class="sku-batch-popper" placement="top">
+                <el-form size="mini" label-width="80px" label-position="right" @submit.native.prevent>
+                  <el-form-item v-if="item.batchForm.prefix !== false" label="前缀字符">
+                    <el-input v-model="item.batchForm.prefix" :maxlength="20" style="width: 100px" placeholder="选填" />
                   </el-form-item>
                   </el-form-item>
                   <el-form-item :label="item.batchForm.initial_value_label">
                   <el-form-item :label="item.batchForm.initial_value_label">
-                    <el-input-number
-                      v-if="item.batchForm.initial_value_type === 'Number'"
-                      v-model="item.batchForm.initial_value"
-                      :controls="false"
-                      :max="item.batchForm.initial_value_max"
-                      placeholder="选填"
-                      style="width: 100px"
-                    />
-                    <el-input
-                      v-else
-                      v-model="item.batchForm.initial_value"
-                      :maxlength="item.batchForm.initial_value_maxlength"
-                      placeholder="选填"
-                      style="width: 100px"
-                    />
+                    <el-input-number v-if="item.batchForm.initial_value_type === 'Number'"
+                      v-model="item.batchForm.initial_value" :controls="false" :max="item.batchForm.initial_value_max"
+                      placeholder="选填" style="width: 100px" />
+                    <el-input v-else v-model="item.batchForm.initial_value"
+                      :maxlength="item.batchForm.initial_value_maxlength" placeholder="选填" style="width: 100px" />
                   </el-form-item>
                   </el-form-item>
-                  <el-form-item
-                    v-if="item.batchForm.step !== false"
-                    label="递增步长"
-                  >
-                    <el-input-number
-                      v-model="item.batchForm.step"
-                      :controls="false"
-                      :max="item.batchForm.step_max"
-                      style="width: 100px"
-                      placeholder="选填"
-                    />
+                  <el-form-item v-if="item.batchForm.step !== false" label="递增步长">
+                    <el-input-number v-model="item.batchForm.step" :controls="false" :max="item.batchForm.step_max"
+                      style="width: 100px" placeholder="选填" />
                   </el-form-item>
                   </el-form-item>
-                  <el-form-item
-                    v-if="item.batchForm.pad_zero !== false"
-                    label="补零位数"
-                  >
-                    <el-input-number
-                      v-model="item.batchForm.pad_zero"
-                      :controls="false"
-                      :max="item.batchForm.pad_zero_max"
-                      style="width: 100px"
-                      placeholder="选填"
-                    />
+                  <el-form-item v-if="item.batchForm.pad_zero !== false" label="补零位数">
+                    <el-input-number v-model="item.batchForm.pad_zero" :controls="false"
+                      :max="item.batchForm.pad_zero_max" style="width: 100px" placeholder="选填" />
                   </el-form-item>
                   </el-form-item>
                 </el-form>
                 </el-form>
                 <div style="text-align: right; margin: 0">
                 <div style="text-align: right; margin: 0">
-                  <el-button
-                    size="mini"
-                    type="text"
-                    @click="item.show_batch = false"
-                    >取消</el-button
-                  >
-                  <el-button
-                    type="primary"
-                    size="mini"
-                    @click="handleBatchSetSkuParams(item)"
-                    >确定</el-button
-                  >
+                  <el-button size="mini" type="text" @click="item.show_batch = false">取消</el-button>
+                  <el-button type="primary" size="mini" @click="handleBatchSetSkuParams(item)">确定</el-button>
                 </div>
                 </div>
                 <i slot="reference" class="el-icon-brush batch-btn"></i>
                 <i slot="reference" class="el-icon-brush batch-btn"></i>
               </el-popover>
               </el-popover>
@@ -246,26 +113,11 @@
           </template>
           </template>
           <template v-slot="{ row, $index }">
           <template v-slot="{ row, $index }">
             <span v-if="item.readonly">{{ row[item.key] || "-" }}</span>
             <span v-if="item.readonly">{{ row[item.key] || "-" }}</span>
-            <el-form-item
-              v-else
-              :prop="`skuList.${$index}.${item.key}`"
-              :class="{ 'hide-message': !showFormMessage }"
-            >
-              <el-input-number
-                v-if="item.type === 'Number'"
-                v-model="row[item.key]"
-                :max="item.max"
-                :controls="false"
-                :disabled="item.disabled"
-                style="width: 100%"
-              />
-              <el-input
-                v-else
-                v-model="row[item.key]"
-                :disabled="item.disabled"
-                :maxlength="item.maxlength"
-                style="text-align: center"
-              />
+            <el-form-item v-else :prop="`skuList.${$index}.${item.key}`" :class="{ 'hide-message': !showFormMessage }">
+              <el-input-number v-if="item.type === 'Number'" v-model="row[item.key]" :max="item.max" :controls="false"
+                :disabled="item.disabled" style="width: 100%" />
+              <el-input v-else v-model="row[item.key]" :disabled="item.disabled" :maxlength="item.maxlength"
+                style="text-align: center" />
             </el-form-item>
             </el-form-item>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
@@ -364,12 +216,12 @@ export default {
     },
     },
     haveSpec: {
     haveSpec: {
       handler(val) {
       handler(val) {
-        if(val){
+        if (val) {
           this.skuForm.skuList = [{}]
           this.skuForm.skuList = [{}]
           console.log(this.skuForm.skuList);
           console.log(this.skuForm.skuList);
-        }else{
+        } else {
           this.$nextTick(() => {
           this.$nextTick(() => {
-            this.skuForm.skuList = [{sku:this.basicInfoData+'0000'}];
+            this.skuForm.skuList = [{ sku: this.basicInfoData + '0000' }];
           })
           })
 
 
           console.log(this.skuForm.skuList);
           console.log(this.skuForm.skuList);
@@ -394,9 +246,9 @@ export default {
       },
       },
       immediate: true,
       immediate: true,
     },
     },
-    sku_sn:{
+    sku_sn: {
       handler(val) {
       handler(val) {
-          //this.skuForm.skuList = [{sku:this.basicInfoData+'0000'}];
+        //this.skuForm.skuList = [{sku:this.basicInfoData+'0000'}];
       },
       },
     },
     },
     basicInfoData: {
     basicInfoData: {
@@ -407,15 +259,15 @@ export default {
     }
     }
   },
   },
   methods: {
   methods: {
-    preventChineseInput(row,event) {
-      console.log(row,event);
-    return event = event.replace(/[\u4e00-\u9fa5]/g, '');
+    preventChineseInput(row, event) {
+      console.log(row, event);
+      return event = event.replace(/[\u4e00-\u9fa5]/g, '');
 
 
-  },
+    },
     updateInternalStateBasedOnBasicInfo(data) {
     updateInternalStateBasedOnBasicInfo(data) {
       // 假设 basicInfoData 包含 'haveSpec' 和 'haveSn' 字段
       // 假设 basicInfoData 包含 'haveSpec' 和 'haveSn' 字段
       if (data) {
       if (data) {
-        this.skuForm.skuList = [{sku:this.basicInfoData+'0000'}]
+        this.skuForm.skuList = [{ sku: this.basicInfoData + '0000' }]
       }
       }
     },
     },
     // 初始化数据
     // 初始化数据
@@ -423,10 +275,10 @@ export default {
       try {
       try {
         this.loading = true;
         this.loading = true;
         const goodsInfo = this.goodsInfo;
         const goodsInfo = this.goodsInfo;
-        console.log('goodsInfo',this.goodsInfo);
-        if (goodsInfo.product_list) {
+        console.log('goodsInfo', this.goodsInfo);
+        if (goodsInfo.product_list) { 
           // 获取规格列表
           // 获取规格列表
-          this.getSpecList();
+          this.getSpecList(); 
           this.skuForm.skuList = Helper.cloneJson(goodsInfo.product_list);
           this.skuForm.skuList = Helper.cloneJson(goodsInfo.product_list);
           this.rawSkuList = Helper.cloneJson(goodsInfo.product_list);
           this.rawSkuList = Helper.cloneJson(goodsInfo.product_list);
           // 初始化商品SKU中已选择的规格信息
           // 初始化商品SKU中已选择的规格信息
@@ -442,7 +294,7 @@ export default {
     // 获取规格列表
     // 获取规格列表
     async getSpecList() {
     async getSpecList() {
       const category_id = this.goodsInfo.category_id || this.categoryId;
       const category_id = this.goodsInfo.category_id || this.categoryId;
-      await Helper.getSpecsByCategoryId(category_id).then((res) => {
+      await Helper.getSpecsByCategoryId(category_id).then((res) => {//
         this.specList = res;
         this.specList = res;
         this.makeTableForm();
         this.makeTableForm();
       });
       });
@@ -471,7 +323,7 @@ export default {
           return this.hireOrSail == "sail" && el.name !== "日租金";
           return this.hireOrSail == "sail" && el.name !== "日租金";
         });
         });
       } else {
       } else {
-    this.tableColumns = table.columns;
+        this.tableColumns = table.columns;
 
 
       }
       }
       this.skuForm.skuList = table.data;
       this.skuForm.skuList = table.data;
@@ -481,9 +333,15 @@ export default {
       } */
       } */
     },
     },
     // 获取规格下的规格值列表
     // 获取规格下的规格值列表
-    getSpecValueList(spec_id) {
-      const specVal = this.specList.find((item) => item.spec_id === spec_id);
-      return specVal ? specVal.value_list : [];
+     getSpecValueList(spec_id) {
+     /*  try {
+        return await Helper.getSpecValues(spec_id); // 假设返回 { values: [ 数组内容 ] }
+      } catch (error) {
+        console.error("Error fetching spec values:", error);
+        throw error;
+      } */
+       const specVal = this.specList.find((item) => item.spec_id === spec_id);
+       return specVal ? specVal.value_list : [];
     },
     },
     // 计算要禁用的规格
     // 计算要禁用的规格
     computedDisabledSpec(spec_id) {
     computedDisabledSpec(spec_id) {
@@ -500,10 +358,10 @@ export default {
     },
     },
     // 添加规格
     // 添加规格
     handleAddSpec() {
     handleAddSpec() {
-      if (!this.goodsInfo.category_id && !this.categoryId) {
+      /* if (!this.goodsInfo.category_id && !this.categoryId) {
         this.$message.error("请先选择商品类别!");
         this.$message.error("请先选择商品类别!");
         return;
         return;
-      }
+      } */
       this.skuForm.selectedSpecs.push({
       this.skuForm.selectedSpecs.push({
         spec_id: "",
         spec_id: "",
         has_spec_image: false,
         has_spec_image: false,
@@ -514,7 +372,7 @@ export default {
     handleAddSpecVal(index) {
     handleAddSpecVal(index) {
       this.skuForm.selectedSpecs[index].spec_value_list.push({
       this.skuForm.selectedSpecs[index].spec_value_list.push({
         spec_value_id: "",
         spec_value_id: "",
-        spec_name:""
+        spec_name: ""
       });
       });
     },
     },
     // 规格发生改变
     // 规格发生改变
@@ -645,8 +503,8 @@ export default {
             reject();
             reject();
             return;
             return;
           }
           }
-          this.skuForm.skuList.map(el=>{
-            el.have_sn=this.haveSn
+          this.skuForm.skuList.map(el => {
+            el.have_sn = this.haveSn
           })
           })
           const skus = Helper.cloneJson(this.skuForm.skuList);
           const skus = Helper.cloneJson(this.skuForm.skuList);
           resolve(skus);
           resolve(skus);
@@ -669,9 +527,11 @@ export default {
 .sku-batch-popper {
 .sku-batch-popper {
   .el-form-item {
   .el-form-item {
     margin-bottom: 5px !important;
     margin-bottom: 5px !important;
+
     .el-input__inner {
     .el-input__inner {
       text-align: center;
       text-align: center;
     }
     }
+
     .el-form-item__label {
     .el-form-item__label {
       font-size: 12px;
       font-size: 12px;
     }
     }

+ 5 - 0
manager-admin/src/views/basicSetting/skuSort.vue

@@ -36,6 +36,11 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
         <el-table-column type="selection" width="55" />
         <el-table-column type="selection" width="55" />
+        <el-table-column label="图标">
+            <template slot-scope="scope">
+              <img :src="scope.row.goods_vo.image_small_list" alt="" width="50px">
+            </template>
+          </el-table-column>
         <el-table-column prop="goods_vo.name" label="商品名称">
         <el-table-column prop="goods_vo.name" label="商品名称">
           <template slot-scope="scope">
           <template slot-scope="scope">
             <span class="selectable">{{ scope.row.goods_vo.name }}</span>
             <span class="selectable">{{ scope.row.goods_vo.name }}</span>

+ 17 - 14
manager-admin/src/views/stock/channelSettings.vue

@@ -10,9 +10,9 @@
 
 
         </div>
         </div>
         <div class="toolbar-search">
         <div class="toolbar-search">
-          <en-table-search @search="searchEvent" @advancedSearch="advancedSearchEvent" placeholder="请输入借出单编号" advanced
+          <en-table-search @search="searchEvent" @advancedSearch="advancedSearchEvent" placeholder="请输入" advanced
             advancedWidth="465">
             advancedWidth="465">
-            <template slot="advanced-content">
+           <!--  <template slot="advanced-content">
               <el-form ref="advancedForm" :model="advancedForm" label-width="90px">
               <el-form ref="advancedForm" :model="advancedForm" label-width="90px">
                 <el-form-item label="所属部门">
                 <el-form-item label="所属部门">
                   <el-cascader v-model="advancedForm.dept_id" :options="deptList" :props="{
                   <el-cascader v-model="advancedForm.dept_id" :options="deptList" :props="{
@@ -37,7 +37,7 @@
                   </el-date-picker>
                   </el-date-picker>
                 </el-form-item>
                 </el-form-item>
               </el-form>
               </el-form>
-            </template>
+            </template> -->
           </en-table-search>
           </en-table-search>
         </div>
         </div>
       </div>
       </div>
@@ -76,21 +76,23 @@
         :page-size="tableData.page_size" layout="total, sizes, prev, pager, next, jumper" :total="tableData.data_total">
         :page-size="tableData.page_size" layout="total, sizes, prev, pager, next, jumper" :total="tableData.data_total">
       </el-pagination>
       </el-pagination>
     </en-table-layout>
     </en-table-layout>
-    <el-dialog :title="title" :visible.sync="dialogVisibleForm"  width="940px" center @close='addHandleCancle'>
-        <el-form ref="addLendForm" :model="addLendForm" :rules="rules" label-width="100px">
-          <el-form-item label="渠道名称" prop="name">
-            <el-input v-model="addLendForm.name" placeholder="请输入渠道名称"></el-input>
+    <el-dialog :title="title" :visible.sync="dialogVisibleForm"  width="30%" center @close='addHandleCancle'>
+        <el-form ref="addLendForm" :model="addLendForm" :rules="rules" label-width="120px">
+          <el-form-item label="渠道名称:" prop="name">
+            <el-input v-model="addLendForm.name" style="width: 200px;" placeholder="请输入渠道名称"></el-input>
           </el-form-item>
           </el-form-item>
-          <el-form-item label="渠道说明" prop="intro">
-            <el-input v-model="addLendForm.intro" placeholder="请输入渠道说明"></el-input>
+          <el-form-item label="渠道说明:" prop="intro">
+            <el-input v-model="addLendForm.intro"  style="width: 200px;" placeholder="请输入渠道说明"></el-input>
           </el-form-item>
           </el-form-item>
-          <el-form-item label="渠道负责人" prop="main_user">
-            <el-input v-model="addLendForm.main_user" placeholder="请输入渠道负责人"></el-input>
+          <el-form-item label="渠道负责人:" prop="main_user">
+            <el-input v-model="addLendForm.main_user"  style="width: 200px;" placeholder="请输入渠道负责人"></el-input>
           </el-form-item>
           </el-form-item>
-          <el-form-item label="渠道佣金比例" prop="bonus">
+          <el-form-item label="渠道佣金比例:" prop="bonus">
             <el-input
             <el-input
-                placeholder="请输入内容"
+             style="width: 200px;"
+                placeholder="请输入佣金比例"
                 v-model="addLendForm.bonus">
                 v-model="addLendForm.bonus">
+                <template slot="append">%</template>
               </el-input>
               </el-input>
           </el-form-item>
           </el-form-item>
         </el-form>
         </el-form>
@@ -145,7 +147,8 @@ export default {
             { required: true, message: '请输入渠道负责人', trigger: 'blur' }
             { required: true, message: '请输入渠道负责人', trigger: 'blur' }
           ],
           ],
           bonus: [
           bonus: [
-            {  required: true, message: '请输入渠道佣金比例', trigger: 'blur' }
+            {  required: true, message: '请输入渠道佣金比例', trigger: 'blur' },
+            { pattern: /^(([1-9]?\d{0,1}(\.\d{1,2})?)|100|100\.(0){1,2})$/, message: '请输入0-100内的数字(最多2位小数)'  }
           ]
           ]
         },
         },
       editId:"",
       editId:"",

+ 2 - 2
manager-admin/src/views/stock/goodsUnderstock.vue

@@ -38,8 +38,8 @@
                 </el-form-item>
                 </el-form-item>
           </el-col>
           </el-col>
           <el-col :span="8">
           <el-col :span="8">
-            <el-form-item label="拨单号">
-                <el-input v-model="advancedForm.sn" placeholder="请输入拨单号"></el-input>
+            <el-form-item label="拨单号">
+                <el-input v-model="advancedForm.sn" placeholder="请输入拨单号"></el-input>
             </el-form-item>
             </el-form-item>
           </el-col>
           </el-col>
         </el-row>
         </el-row>

+ 11 - 4
manager-admin/src/views/stock/order.vue

@@ -161,13 +161,13 @@
             <el-button size="mini" type="success" v-if="scope.row.status === 'TO_BE_COMMIT'"
             <el-button size="mini" type="success" v-if="scope.row.status === 'TO_BE_COMMIT'"
               @click="handleSubmit(scope.row.id)">确认</el-button>
               @click="handleSubmit(scope.row.id)">确认</el-button>
             <el-button size="mini" @click="handleEdit(scope.row)"
             <el-button size="mini" @click="handleEdit(scope.row)"
-              v-if="scope.row.status === 'TO_BE_COMMIT'">编辑</el-button>
+              v-if="scope.row.status === 'TO_BE_COMMIT' || scope.row.status === 'TO_BE_SEND'">编辑</el-button>
             <el-button size="mini" type="danger" v-if="scope.row.type === 'TO_C'"
             <el-button size="mini" type="danger" v-if="scope.row.type === 'TO_C'"
               @click="handleWithdraw(scope.row.id)">延期</el-button>
               @click="handleWithdraw(scope.row.id)">延期</el-button>
-            <el-button size="mini" type="danger" v-if="!scope.row.has_pay_return"
+            <el-button size="mini" type="primary" v-if="!scope.row.has_pay_return"
               @click="payTypes(scope.row)">支付</el-button>
               @click="payTypes(scope.row)">支付</el-button>
-            <!-- <el-button size="mini" type="primary" v-if="scope.row.allowable.payment && checkPermission(['order:payment'])"
-                       @click="handlePayment(scope.row.id)">设为已支付</el-button> -->
+            <el-button size="mini" type="danger" style="margin-top: 5px;" v-if="scope.row.status !== 'TO_BE_SEND'&& checkPermission(['order:payment'])"
+                       @click="afterSales(scope.row.id)">售后</el-button>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </template>
       </template>
@@ -258,6 +258,13 @@ export default {
     next();
     next();
   },
   },
   methods: {
   methods: {
+    //新增售后
+    afterSales(row){
+      this.$router.push({
+        name: "orderReturnAdd",
+        params: { id:row },
+      });
+    },
     closeDialog() {
     closeDialog() {
       this.payVisible = false
       this.payVisible = false
       this.payCode = ''
       this.payCode = ''

+ 21 - 8
manager-admin/src/views/stock/orderAdd.vue

@@ -115,6 +115,13 @@
             </el-radio-group>
             </el-radio-group>
           </el-form-item>
           </el-form-item>
         </el-col>
         </el-col>
+        <el-col :span="10">
+          <el-form-item label="订单渠道:" prop="sale_channel_id" :rules="rules.sale_channel_id">
+            <el-select v-model="OrderForm.sale_channel_id" clearable :disabled="type == 'pone'">
+              <el-option v-for="item in channList" :key="item.id" :label="item.name" :value="item.id" />
+            </el-select>
+          </el-form-item>
+        </el-col>
         <el-col :span="24">
         <el-col :span="24">
           <div class="redClass">
           <div class="redClass">
             <el-form-item label="备注:" prop="remark">
             <el-form-item label="备注:" prop="remark">
@@ -168,7 +175,7 @@
             </template>
             </template>
           </el-table-column>
           </el-table-column>
           <el-table-column prop="product_vo.spec_name" label="规格型号">
           <el-table-column prop="product_vo.spec_name" label="规格型号">
-           <!--  <template slot-scope="scope">
+            <!--  <template slot-scope="scope">
               <span v-if="!id">{{ scope.row.product_vo.spec_name }}</span>
               <span v-if="!id">{{ scope.row.product_vo.spec_name }}</span>
               <span v-else>{{ scope.row.product_vo.spec_name }}</span>
               <span v-else>{{ scope.row.product_vo.spec_name }}</span>
             </template> -->
             </template> -->
@@ -333,12 +340,12 @@
       </el-table>
       </el-table>
     </div> -->
     </div> -->
       <div class="footer">
       <div class="footer">
-        <el-button type="primary" @click="submit" v-if="!isDetail && type == 'pone'"
+        <!-- <el-button type="primary" @click="submit" v-if="!isDetail && type == 'pone'"
           :loading="formLoading">确认</el-button>
           :loading="formLoading">确认</el-button>
         <el-button type="primary" @click="submitOrderForm" v-if="!isDetail && type !== 'pone'"
         <el-button type="primary" @click="submitOrderForm" v-if="!isDetail && type !== 'pone'"
-          :loading="formLoading">保存</el-button>
+          :loading="formLoading">保存</el-button> -->
         <el-button type="primary" @click="saveSubmitOrderForm" v-if="!isDetail && type !== 'pone'"
         <el-button type="primary" @click="saveSubmitOrderForm" v-if="!isDetail && type !== 'pone'"
-          :loading="formLoading">确认并保存</el-button>
+          :loading="formLoading">确认</el-button>
         <el-button @click="printIng" :disabled="false" v-if="isDetail">打印</el-button>
         <el-button @click="printIng" :disabled="false" v-if="isDetail">打印</el-button>
         <!-- <el-button type="primary" :disabled="false" @click="handleAudit(true)" v-if="isDetail && checkPermission(['order:audit']) && OrderForm.allowable.audit">审核通过</el-button>
         <!-- <el-button type="primary" :disabled="false" @click="handleAudit(true)" v-if="isDetail && checkPermission(['order:audit']) && OrderForm.allowable.audit">审核通过</el-button>
       <el-button type="danger" :disabled="false" @click="handleAudit(false)" v-if="isDetail && checkPermission(['order:audit']) && OrderForm.allowable.audit">审核驳回</el-button> -->
       <el-button type="danger" :disabled="false" @click="handleAudit(false)" v-if="isDetail && checkPermission(['order:audit']) && OrderForm.allowable.audit">审核驳回</el-button> -->
@@ -411,6 +418,7 @@ import * as API_Setting from "@/api/setting";
 import * as API_CollectingAccount from "@/api/collectingAccount";
 import * as API_CollectingAccount from "@/api/collectingAccount";
 import * as API_productClass from "@/api/productClass.js"
 import * as API_productClass from "@/api/productClass.js"
 import { RegExp } from "~/ui-utils";
 import { RegExp } from "~/ui-utils";
+import * as API_GoodsLend from '@/api/goodsLend'
 import {
 import {
   provinceAndCityData,
   provinceAndCityData,
   pcTextArr,
   pcTextArr,
@@ -684,7 +692,8 @@ export default {
         size: 10
         size: 10
       },//商品分页
       },//商品分页
       orderType: '',//条形码查看类型
       orderType: '',//条形码查看类型
-      monthDiff: 0
+      monthDiff: 0,
+      channList:[]//渠道列表
     };
     };
   },
   },
   computed: {
   computed: {
@@ -939,6 +948,10 @@ export default {
       API_BasicSetting.getUserByDept().then((res) => {
       API_BasicSetting.getUserByDept().then((res) => {
         this.marketingList = res;
         this.marketingList = res;
       });
       });
+      //渠道
+      API_GoodsLend.channel(this.params).then(response => {
+        this.channList = response.data
+      }).catch(() => { })
     },
     },
     /** 获取自提门店列表 */
     /** 获取自提门店列表 */
     GET_StoreList() {
     GET_StoreList() {
@@ -1223,7 +1236,7 @@ export default {
           .then((response) => {
           .then((response) => {
             this.$message.success("修改成功!");
             this.$message.success("修改成功!");
             API_Order.submit(id).then((res) => {
             API_Order.submit(id).then((res) => {
-              this.$message.success("订单已确认");
+             /*  this.$message.success("订单已确认"); */
               this.backOrderList();
               this.backOrderList();
             });
             });
           })
           })
@@ -1238,8 +1251,8 @@ export default {
         });
         });
         API_Order.addOrder(params)
         API_Order.addOrder(params)
           .then((res) => {
           .then((res) => {
-            this.$message.success("添加成功!");
-            /**/ API_Order.submit(res).then((res) => {
+           /*  this.$message.success("添加成功!"); */
+             API_Order.submit(res).then((res) => {
               this.$message.success("订单已确认");
               this.$message.success("订单已确认");
               this.backOrderList();
               this.backOrderList();
             });
             });

+ 1 - 1
manager-admin/src/views/stock/orderCheck.vue

@@ -580,8 +580,8 @@ export default {
     methods: {
     methods: {
         // 二维码生成
         // 二维码生成
         creatQrCode() {
         creatQrCode() {
-            console.log(this.OrderForm);
             this.$nextTick(() => {
             this.$nextTick(() => {
+                this.$refs.qrCodeDiv.innerHTML = "";
                 new QRCode(this.$refs.qrCodeDiv, {
                 new QRCode(this.$refs.qrCodeDiv, {
                     text: this.payurl + '#/payType?id=' + this.id + '&sn=' + this.barcodeValue + '&price=' + this.OrderForm.real_price,
                     text: this.payurl + '#/payType?id=' + this.id + '&sn=' + this.barcodeValue + '&price=' + this.OrderForm.real_price,
                     width: 200,
                     width: 200,

+ 3 - 2
manager-admin/src/views/stock/orderReturn.vue

@@ -151,7 +151,7 @@
               >查看</el-button
               >查看</el-button
             >
             >
 
 
-            <el-button
+           <!--  <el-button
               type="success"
               type="success"
               size="mini"
               size="mini"
               v-if="
               v-if="
@@ -170,7 +170,7 @@
               "
               "
               @click="handleWithdrawPurchasePlan(scope.row)"
               @click="handleWithdrawPurchasePlan(scope.row)"
               >关闭</el-button
               >关闭</el-button
-            >
+            > -->
             <div></div>
             <div></div>
 
 
             <!-- <el-button type="success" size="mini" v-if="scope.row.allowable.audit && checkPermission(['orderReturn:audit'])"
             <!-- <el-button type="success" size="mini" v-if="scope.row.allowable.audit && checkPermission(['orderReturn:audit'])"
@@ -230,6 +230,7 @@ export default {
   },
   },
   watch: {
   watch: {
     $route: function ({ query }) {
     $route: function ({ query }) {
+      console.log(query);
       this.params.page_no = 1;
       this.params.page_no = 1;
       this.GET_orderReturnList();
       this.GET_orderReturnList();
     },
     },

+ 2 - 1
ui-utils/Foundation.js

@@ -187,7 +187,8 @@ let toFirstRoute = function getTopRoutePath(router, next) {
     '/500',
     '/500',
     '/login',
     '/login',
     '/cashier/login',
     '/cashier/login',
-    '/franchise/login'
+    '/franchise/login',
+    '/payType'
   ]
   ]
   const paths = router.getRoutes().map(item => item.path)
   const paths = router.getRoutes().map(item => item.path)
   const path = paths.filter(item => !excludes.includes(item) && item.indexOf('/:') === -1)[0]
   const path = paths.filter(item => !excludes.includes(item) && item.indexOf('/:') === -1)[0]