changhaoning 1 год назад
Родитель
Сommit
861d7b9b54
4 измененных файлов с 233 добавлено и 48 удалено
  1. 1 0
      src/api/pages/mst/staff.js
  2. 3 0
      src/locale/lang/zh-CN.js
  3. 206 48
      src/view/mst/goods/form.vue
  4. 23 0
      src/view/mst/staff/index.vue

+ 1 - 0
src/api/pages/mst/staff.js

@@ -23,6 +23,7 @@ export const routeUrl = {
   staff: {
     moduleRights: {key: 'moduleRights', method: 'moduleRights'},
     scopeRights: {key: 'scopeRights', routeName: 'staff-purview',chooseFlag:true},
+    buyStaff: {key: 'buyStaff', method: 'buyStaff'},
   }
 
 

+ 3 - 0
src/locale/lang/zh-CN.js

@@ -680,6 +680,9 @@ export const columns = {
   payHandleCurrent:'本期应付余额',
   payEnding:'期末付款余额',
   payHandleEnding:'期末应付余额',
+  flgToSubUuId:'开启辅助单位',
+  flgToPrice:'开启价格体系',
+  flgOpeningInv:'开启期初库存',
 }
 
 /**

+ 206 - 48
src/view/mst/goods/form.vue

@@ -7,9 +7,9 @@
                   v-if="editKeys && editKeys.length > 1"
                   @pageChange="editPageChange"></DkPageButton>
     <DkCollapse @on-change="changeCollapse" ref="collapse">
+      <!--  基础属性  -->
       <DkPanel prop="baseAttribute">
-        <!--  基础属性  -->
-        <DkForm slot="content" ref="formInline" v-model="formData" :labelMaxWords=5>
+        <DkForm slot="content" ref="formInline0" v-model="formData" :labelMaxWords=5>
           <!--商品编码-->
           <DkFormItem prop="skuCode">
             <InputPop ref="skuCode" v-model="formData.skuCode" :readonly="true"/>
@@ -22,11 +22,6 @@
           <DkFormItem prop="skuName" :required="true">
             <InputPop ref="skuName" v-model="formData.skuName"/>
           </DkFormItem>
-        </DkForm>
-      </DkPanel>
-      <DkPanel prop="goodsAttribute">
-        <!--  商品属性  -->
-        <DkForm slot="content" ref="formInline" v-model="formData" :labelMaxWords=5>
           <!--  品牌  -->
           <DkFormItem prop="brandId" :label="$t('brandIds')" :required="true">
             <SelectMagnifier v-model="formData.brandId" :display-text="formData.brandName"
@@ -48,76 +43,118 @@
                        valueKey=seriesId>
             </SelectPop>
           </DkFormItem>
-          <!--计量单位-->
-          <DkFormItem prop="unitId" :label="$t('unit')" :required="true">
+          <!--商品规格-->
+          <DkFormItem prop="skuSpec">
+            <InputPop ref="skuSpec" v-model="formData.skuSpec"/>
+          </DkFormItem>
+          <!--备注-->
+          <DkFormItem prop="remarks" :span="12">
+            <InputPop ref="remarks" v-model="formData.remarks"
+                      maxlength=500 textareaFlag/>
+          </DkFormItem>
+        </DkForm>
+      </DkPanel>
+      <!--  商品属性  -->
+      <DkPanel prop="goodsAttribute">
+        <DkForm slot="content" ref="formInline1" v-model="formData" :labelMaxWords=5>
+          <!--基本单位-->
+          <DkFormItem prop="unitId" :label="$t('piece')" :required="true">
             <SelectPop v-model="formData.unitId" :multiple="false" :options="unitList"
                        labelKey="unitName"
                        valueKey="unitId">
             </SelectPop>
           </DkFormItem>
+          <!--是否开启辅助单位-->
+          <DkFormItem prop="flgToSubUuId">
+            <template>
+              <i-switch v-model="formData.flgSubUnit" @on-change="changeSubUnit">
+                <span slot="open"></span>
+                <span slot="close"></span>
+              </i-switch>
+            </template>
+          </DkFormItem>
           <!--辅助单位-->
-          <DkFormItem prop="subUnitId" :label="$t('subUnit')">
+          <DkFormItem prop="subUnitId" :label="$t('box')" :required="true" v-if="showSubUnit">
             <SelectPop v-model="formData.subUnitId" :multiple="false" :options="subUnitList"
+                       :disabled="formData.unitId?!formData.flgSubUnit:true"
                        labelKey="unitName"
                        valueKey="unitId">
             </SelectPop>
           </DkFormItem>
-          <!--商品规格-->
-          <DkFormItem prop="skuSpec">
-            <InputPop ref="skuSpec" v-model="formData.skuSpec"/>
-          </DkFormItem>
-          <!--单位换算-->
-          <DkFormItem prop="conversionFactor">
-            <InputNumberPop ref="conversionFactor" v-model="formData.conversionFactor"/>
+          <!--包装-->
+          <DkFormItem prop="conversionFactor" :label="$t('packBox')" :required="true" data-type="number" v-if="showSubUnit">
+            <InputNumberPop ref="conversionFactor" v-model="formData.conversionFactor" :disabled="formData.unitId?!formData.flgSubUnit:true"/>
           </DkFormItem>
         </DkForm>
       </DkPanel>
+      <!--  价格信息-->
       <DkPanel prop="priceItem">
-        <DkForm slot="content" ref="formInline" v-model="formData">
+        <DkForm slot="content" v-model="formData">
+        <!--是否开启价格体系-->
+        <DkFormItem prop="flgToPrice">
+          <template>
+            <i-switch v-model="formData.flgPrice" @on-change="changePrice">
+              <span slot="open"></span>
+              <span slot="close"></span>
+            </i-switch>
+          </template>
+        </DkFormItem>
+        </DkForm>
+        <DkForm slot="content" ref="formInline2" v-model="formData" v-if="priceFlag">
           <!--采购价-->
-          <DkFormItem prop="pricePurchase">
+          <DkFormItem prop="pricePurchase" :required="true" data-type="number">
             <InputNumberPop ref="pricePurchase" v-model="formData.pricePurchase" />
           </DkFormItem>
           <!--零售价-->
-          <DkFormItem prop="priceStandard">
+          <DkFormItem prop="priceStandard" :required="true" data-type="number">
             <InputNumberPop ref="priceStandard" v-model="formData.priceStandard" />
           </DkFormItem>
           <!--批发价-->
-          <DkFormItem prop="priceWholesale">
+          <DkFormItem prop="priceWholesale" :required="true" data-type="number">
             <InputNumberPop ref="priceWholesale" v-model="formData.priceWholesale"/>
           </DkFormItem>
-          <!--销售售价-->
-          <DkFormItem prop="priceLimited">
-            <InputNumberPop ref="priceLimited" v-model="formData.priceLimited"/>
-          </DkFormItem>
           <!--其他售价-->
-          <DkFormItem prop="priceOther">
+          <DkFormItem prop="priceOther" :required="true" data-type="number">
             <InputNumberPop ref="priceOther" v-model="formData.priceOther"/>
           </DkFormItem>
+          <!--销售售价-->
+          <DkFormItem prop="priceLimited" :required="true" data-type="number">
+            <InputNumberPop ref="priceLimited" v-model="formData.priceLimited"/>
+          </DkFormItem>
         </DkForm>
       </DkPanel>
-      <DkPanel prop="invInto" v-show="false">
-        <DkForm slot="content" ref="formInline" v-model="formData">
+
+      <!--  期初库存信息-->
+      <DkPanel prop="invInto">
+        <!--是否开启期初库存-->
+        <DkForm slot="content" v-model="formData">
+          <DkFormItem prop="flgOpeningInv">
+            <template>
+              <i-switch v-model="formData.flgOpeningInv" @on-change="changeInv">
+                <span slot="open"></span>
+                <span slot="close"></span>
+              </i-switch>
+            </template>
+          </DkFormItem>
+        </DkForm>
+        <DkForm slot="content" ref="formInline3" v-model="formData" v-if="InvFlag">
         <!--  仓库名称  -->
-        <DkFormItem prop="whId">
+        <DkFormItem prop="whId" :required="true">
           <SelectMagnifier v-model="formData.whId" :display-text="formData.whName"
                            :type="this.$config.MagnifierType.warehouse"
                            :multiple="false"></SelectMagnifier>
         </DkFormItem>
-        <!--非标号-->
-        <DkFormItem prop="nonStdCode">
-          <InputPop ref="nonStdCode" v-model="formData.nonStdCode"/>
-        </DkFormItem>
-        </DkForm>
-      </DkPanel>
-      <DkPanel prop="remarks">
-        <DkForm slot="content" ref="formInline" v-model="formData">
-          <DkFormItem prop="remarks" :span="12">
-            <InputPop ref="remarks" v-model="formData.remarks"
-                      maxlength=500 textareaFlag/>
+          <!--销售售价-->
+          <DkFormItem prop="priceLimited" :required="true" data-type="number">
+            <InputNumberPop ref="priceLimited" v-model="formData.priceLimited"/>
+          </DkFormItem>
+          <!--期初成本价-->
+          <DkFormItem prop="priceLimited" :required="true" data-type="number">
+            <InputNumberPop ref="priceLimited" v-model="formData.priceLimited"/>
           </DkFormItem>
         </DkForm>
       </DkPanel>
+
       <DkPanel prop="skuImages">
         <div id="search-cond-div-files-info" ref="search-cond-div-files-info" slot="content">
           <DkPicWall v-model="formData.skuImages"
@@ -128,20 +165,24 @@
     </DkCollapse>
 
     <!--      下部分按钮区域-->
-    <DkSaveButton ref="saveButton" :loading="loading" @save="save" @close="close"
-                  v-if="type !== 'edit-staff'"></DkSaveButton>
+    <DkSaveButton ref="saveButton" :loading="loading" @save="save1" @close="close"></DkSaveButton>
   </div>
 </template>
 
 <script>
 import {formMixin} from "@/mixins/form";
-import {button, columns, formTitle, loginTitle, messages, others} from "@/locale/lang/zh-CN";
 
 export default {
   components: {},
   mixins: [formMixin],
   data() {
     return {
+      //辅助单位是否显示
+      showSubUnit:true,
+      //价格体系显示
+      priceFlag:false,
+      //期初库存显示
+      InvFlag:false,
       categoryList:[],
       seriesList:[],
       unitList:[],
@@ -156,11 +197,14 @@ export default {
         seriesId: null,//商品系列
         unitId: null,//计量单位
         skuSpec: null,//商品规格
+        flgSubUnit:true,//辅助单位标识
         subUnitId: null,//辅助计量单位
         conversionFactor: null, //单位换算
+        flgOpeningInv:false,//期初库存标识(编辑时不允许修改)
         nonStdCode:null,
         whId:null,
         whName:null,
+        flgPrice:false,//价格体系标识
         pricePurchase : null, //采购价
         priceStandard : null, //零售价
         priceWholesale : null,//批发价
@@ -173,6 +217,78 @@ export default {
   methods: {
 
     /**
+    * @desc   : 辅助单位标识变更
+    * @author : 常皓宁
+    * @date   : 2024/5/24 13:36
+    */
+    changeSubUnit() {
+      if (this.type === this.$config.formMode.add) {
+        if (this.formData.flgSubUnit) {
+          this.showSubUnit = true
+        }else{
+          this.showSubUnit = false
+        }
+      }
+    },
+
+    /**
+     * @desc   : 价格体系标识变更
+     * @author : 常皓宁
+     * @date   : 2024/5/24 13:36
+     */
+    changePrice() {
+      if (this.type === this.$config.formMode.add) {
+        if (this.formData.flgPrice) {
+          this.priceFlag = true
+        }else{
+          this.priceFlag = false
+        }
+      }
+    },
+
+    /**
+     * @desc   : 期初库存标识变更
+     * @author : 常皓宁
+     * @date   : 2024/5/24 13:36
+     */
+    changeInv() {
+      if (this.type === this.$config.formMode.add) {
+        if (this.formData.flgOpeningInv) {
+          this.InvFlag = true
+        }else{
+          this.InvFlag = false
+        }
+      }
+    },
+
+    /**
+     * @desc   : 数据校验
+     * @author : 常皓宁
+     * @date   : 2024/3/2 9:51
+     */
+    save1() {
+      this.$refs['formInline0'].validate().then(valid => {
+        this.$refs['formInline1'].validate().then(valid1 => {
+          if(!valid || !valid1){
+            return
+          }else{
+            if (this.$refs['formInline2']) {
+              this.$refs['formInline2'].validate().then(valid2 => {
+                if (!valid2) {
+                  return;
+                }
+                this.outSave()
+              })
+            }else{
+              this.outSave()
+            }
+          }
+        })
+      })
+
+    },
+
+    /**
      * @desc   : 加载数据
      * @author : 宋扬
      * @date   : 2024/4/8 15:12
@@ -256,16 +372,58 @@ export default {
     },
 
     /**
+    * @desc   : 外部保存
+    * @author : 常皓宁
+    * @date   : 2024/5/24 16:37
+    */
+    outSave(){
+      this.loading = true;
+      // 2、给参数赋值
+      this.setParams()
+      // 3、保存数据
+      this._saveData().then(result => {
+        // 新建成功
+        if (result.code === this.$config.SUCCESS_CODE) {
+          // 提示信息
+          this.$Message.success(this.$t('I_001', {'param': this.$t(this.typeData)}))
+          // 新建清空当前窗体
+          if (this.typeData === this.$config.formMode.add
+            || this.typeData === this.$config.formMode.addTogether
+            || this.typeData === this.$config.formMode.moldDamage) {
+            this._clear();
+          } else {
+            // 如果是多个数据进行编辑不能关页面
+            if (this.editKeys && this.editKeys.length > 1) {
+              if (this.editIndex + 1 <= this.editKeys.length) {
+                // 跳转到下一条数据
+                this.editPageChange(this.editIndex + 1)
+              }
+            } else {
+              // 单一页面编辑关闭窗体
+              this.close(false);
+            }
+          }
+        } else {
+          // 如果不成功就提示错误信息
+          this.$Message.warning(result.message)
+        }
+        this.loading = false
+      });
+    },
+
+    /**
      * @desc   : 保存数据
      * @author : 宋扬
      * @date   : 2024/4/8 16:30
      */
     saveData() {
-      if (this.type === this.$config.formMode.add) {
-        return this.excute(this.$service.goodsService, this.$service.goodsService.insert, this.params);
-      } else if (this.type === this.$config.formMode.edit) {
-        return this.excute(this.$service.goodsService, this.$service.goodsService.update, this.params);
-      }
+      console.log('this.params',this.params)
+      this.loading = false
+      // if (this.type === this.$config.formMode.add) {
+      //   return this.excute(this.$service.goodsService, this.$service.goodsService.insert, this.params);
+      // } else if (this.type === this.$config.formMode.edit) {
+      //   return this.excute(this.$service.goodsService, this.$service.goodsService.update, this.params);
+      // }
     },
 
   },

+ 23 - 0
src/view/mst/staff/index.vue

@@ -19,6 +19,8 @@
         <BaseIndexButton right-button="staff-fun" ref="moduleRights" name="moduleRights"></BaseIndexButton>
         <!--    范围权限    -->
         <BaseIndexButton ref="scopeRights" name="scopeRights"></BaseIndexButton>
+        <!--    购买用户    -->
+        <BaseIndexButton ref="buyStaff" name="buyStaff"></BaseIndexButton>
       </template>
       <template #right>
         <!--   新建     -->
@@ -131,6 +133,8 @@ export default {
   data() {
     let self = this
     return {
+      //购买用户
+      buyStaffModal:false,
       columns: [
         {field: 'orgName', type: 'disabled', width: 'auto'},
         {field: 'checked', type: 'switch'},
@@ -207,6 +211,25 @@ export default {
 
     // region 功能按钮操作
     /**
+    * @desc   : 购买用户
+    * @author : 常皓宁
+    * @date   : 2024/5/24 11:12
+    */
+    buyStaff(){
+      if (this.$refs['table-select'].batchKeys.length == 1) {
+        if (!this.$refs['table-select'].batchRows[0].staffId) {
+          this.$Message.error(this.$t('W_068'))
+          return
+        }
+        this.buyStaffModal = true
+        // 查询客户信息
+        this.getCustomerInfo()
+      } else {
+        this.$Message.error(this.$t('W_013'))
+      }
+    },
+
+    /**
      * @desc   : 重置密码
      * @author : 常皓宁
      * @date   : 2022-04-25 17:09