Ver código fonte

lizhuo submits AnnualSaleGoal at 2023-7-14 17:00

002637 1 ano atrás
pai
commit
b0103e63d4
1 arquivos alterados com 204 adições e 125 exclusões
  1. 204 125
      src/views/business/spd/goal_management/MonthSaleGoal.vue

+ 204 - 125
src/views/business/spd/goal_management/MonthSaleGoal.vue

@@ -80,18 +80,8 @@
           size="mini"
           @click="handleAdd"
           v-hasPermi="['goal_management:monthSaleGoal:add']"
-        >新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['goal_management:monthSaleGoal:edit']"
-        >修改</el-button>
+        >新增
+        </el-button>
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -102,7 +92,8 @@
           :disabled="multiple"
           @click="handleDelete"
           v-hasPermi="['goal_management:monthSaleGoal:remove']"
-        >删除</el-button>
+        >删除
+        </el-button>
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -112,28 +103,29 @@
           size="mini"
           @click="handleExport"
           v-hasPermi="['goal_management:monthSaleGoal:export']"
-        >导出</el-button>
+        >导出
+        </el-button>
       </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
     <el-table v-loading="loading" :data="monthSaleGoalList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" fixed />
-      <el-table-column label="编码" align="center" prop="code" />
-      <el-table-column label="目标名称" align="center" prop="goalName" />
+      <el-table-column type="selection" width="55" align="center" fixed/>
+      <el-table-column label="编码" align="center" prop="code"/>
+      <el-table-column label="目标名称" align="center" prop="goalName"/>
       <el-table-column label="单据日期" align="center" prop="documentDate" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.documentDate, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="年度" align="center" prop="annual" />
-      <el-table-column label="客户" align="center" prop="custom" />
-      <el-table-column label="销售区域" align="center" prop="saleZone" />
-      <el-table-column label="制单人" align="center" prop="creator" />
-      <el-table-column label="部门" align="center" prop="dept" />
-      <el-table-column label="目标合计" align="center" prop="goalSum" />
-      <el-table-column label="备注" align="center" prop="notes" />
-      <el-table-column label="单据状态" align="center" prop="documentStatus" />
+      <el-table-column label="年度" align="center" prop="annual"/>
+      <el-table-column label="客户" align="center" prop="custom"/>
+      <el-table-column label="销售区域" align="center" prop="saleZone"/>
+      <el-table-column label="制单人" align="center" prop="creator"/>
+      <el-table-column label="部门" align="center" prop="dept"/>
+      <el-table-column label="目标合计" align="center" prop="goalSum"/>
+      <el-table-column label="备注" align="center" prop="notes"/>
+      <el-table-column label="单据状态" align="center" prop="documentStatus"/>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="130px">
         <template slot-scope="scope">
           <el-button
@@ -142,14 +134,16 @@
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
             v-hasPermi="['goal_management:monthSaleGoal:edit']"
-          >修改</el-button>
+          >修改
+          </el-button>
           <el-button
             size="mini"
             type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
             v-hasPermi="['goal_management:monthSaleGoal:remove']"
-          >删除</el-button>
+          >删除
+          </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -162,17 +156,18 @@
       @pagination="getList"
     />
 
-    <el-drawer :title="title" :visible.sync="drawerAddOrEdit" :direction="direction" :before-close="handleClose" size="100%">
+    <el-drawer :title="title" :visible.sync="drawerAddOrEdit" :direction="direction" :before-close="handleClose"
+               size="100%">
       <el-form ref="form" :model="form" :rules="rules" label-width="120px">
         <el-row :gutter="10">
           <el-col :span="1.5">
             <el-form-item label="编码" prop="code">
-              <el-input v-model="form.code" placeholder="编码自动生成" disabled />
+              <el-input v-model="form.code" placeholder="编码自动生成" disabled/>
             </el-form-item>
           </el-col>
           <el-col :span="1.5">
             <el-form-item label="目标名称" prop="goalName">
-              <el-input v-model="form.goalName" placeholder="目标名称自动生成" disabled />
+              <el-input v-model="form.goalName" placeholder="目标名称自动生成" disabled/>
             </el-form-item>
           </el-col>
           <el-col :span="1.5">
@@ -201,28 +196,32 @@
         <el-row :gutter="10">
           <el-col :span="1.5">
             <el-form-item label="客户" prop="custom">
-              <el-popover-select-v2 v-model="form.custom" title="客户" valueKey="name" referName="CUSTOMER_PARAM" :dataMapping="{
+              <el-popover-select-v2 v-model="form.custom" title="客户" valueKey="name" referName="CUSTOMER_PARAM"
+                                    :dataMapping="{
                 customCode: 'code', custom: 'name'
               }" :source.sync="form" placeholder="请输入客户"></el-popover-select-v2>
             </el-form-item>
           </el-col>
           <el-col :span="1.5">
             <el-form-item label="销售区域" prop="saleZone">
-              <el-popover-select-v2 v-model="form.saleZone" title="销售区域" valueKey="name" referName="ORG_PARAM" :dataMapping="{
+              <el-popover-select-v2 v-model="form.saleZone" title="销售区域" valueKey="name" referName="ORG_PARAM"
+                                    :dataMapping="{
                 saleZoneCode: 'code', saleZone: 'name'
               }" :source.sync="form" placeholder="请输入销售区域"></el-popover-select-v2>
             </el-form-item>
           </el-col>
           <el-col :span="1.5">
             <el-form-item label="制单人" prop="creator">
-              <el-popover-select-v2 v-model="form.creator" title="制单人" valueKey="name" referName="CONTACTS_PARAM" :dataMapping="{
+              <el-popover-select-v2 v-model="form.creator" title="制单人" valueKey="name" referName="CONTACTS_PARAM"
+                                    :dataMapping="{
                 creatorCode: 'code', creator: 'name'
               }" :source.sync="form" placeholder="请输入制单人"></el-popover-select-v2>
             </el-form-item>
           </el-col>
           <el-col :span="1.5">
             <el-form-item label="部门" prop="dept">
-              <el-popover-select-v2 v-model="form.dept" title="制单人" valueKey="name" referName="DEPT_PARAM" :dataMapping="{
+              <el-popover-select-v2 v-model="form.dept" title="制单人" valueKey="name" referName="DEPT_PARAM"
+                                    :dataMapping="{
                 deptCode: 'code', dept: 'name'
               }" :source.sync="form" placeholder="请输入部门"></el-popover-select-v2>
             </el-form-item>
@@ -231,12 +230,12 @@
         <el-row :gutter="10">
           <el-col :span="1.5">
             <el-form-item label="目标合计" prop="goalSum">
-              <el-input v-model="form.goalSum" placeholder="请输入目标合计" disabled />
+              <el-input v-model="form.goalSum" placeholder="请输入目标合计" disabled/>
             </el-form-item>
           </el-col>
           <el-col :span="1.5">
             <el-form-item label="备注" prop="notes">
-              <el-input v-model="form.notes" placeholder="请输入备注" />
+              <el-input v-model="form.notes" placeholder="请输入备注"/>
             </el-form-item>
           </el-col>
           <el-col :span="1.5">
@@ -256,7 +255,8 @@
             size="mini"
             @click="handleAddDetails"
             v-hasPermi="['goal_management:monthSaleGoalDetails:add']"
-          >新增</el-button>
+          >新增
+          </el-button>
         </el-col>
         <el-col :span="1.5">
           <el-button
@@ -267,88 +267,98 @@
             :disabled="multiple"
             @click="handleDeleteDetails"
             v-hasPermi="['goal_management:monthSaleGoalDetails:remove']"
-          >删除</el-button>
+          >删除
+          </el-button>
         </el-col>
-        <el-table v-loading="loading" :data="monthSaleGoalDetailsList" @selection-change="handleSelectionChange">
-          <el-table-column type="selection" width="55" align="center" />
-          <el-table-column label="id唯一标识" align="center" prop="id" />
-          <el-table-column label="编码" align="center" prop="code" />
-          <el-table-column label="销售组织" align="center" prop="saleOrg" />
-          <el-table-column label="销售区域" align="center" prop="saleZone" />
-          <el-table-column label="客户" align="center" prop="custom" />
-          <el-table-column label="部门" align="center" prop="dept" />
-          <el-table-column label="制单人" align="center" prop="creator" />
-          <el-table-column label="一级分类编码" align="center" prop="oneLevelClassifyCode" />
-          <el-table-column label="一级分类" align="center" prop="oneLevelClassify" />
-          <el-table-column label="二级分类编码" align="center" prop="twoLevelClassifyCode" />
-          <el-table-column label="二级分类" align="center" prop="twoLevelClassify" />
-          <el-table-column label="物料编码" align="center" prop="materialCode" />
-          <el-table-column label="物料" align="center" prop="material" />
-          <el-table-column label="科室" align="center" prop="department" />
-          <el-table-column label="数量" align="center" prop="num" />
-          <el-table-column label="月份" align="center" prop="monthly" />
-          <el-table-column label="目标值" align="center" prop="goalValue" />
-          <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-            <template slot-scope="scope">
-              <el-button
-                size="mini"
-                type="text"
-                icon="el-icon-edit"
-                @click="handleUpdateDetails(scope.row)"
-                v-hasPermi="['goal_management:monthSaleGoalDetails:edit']"
-              >修改</el-button>
-              <el-button
-                size="mini"
-                type="text"
-                icon="el-icon-delete"
-                @click="handleDeleteDetails(scope.row)"
-                v-hasPermi="['goal_management:monthSaleGoalDetails:remove']"
-              >删除</el-button>
-            </template>
-          </el-table-column>
-        </el-table>
-
-        <pagination
-          v-show="totalDetails>0"
-          :total="totalDetails"
-          :page.sync="queryParamsDetails.pageNum"
-          :limit.sync="queryParamsDetails.pageSize"
-          @pagination="getListDetails"
-        />
       </el-row>
+      <el-table v-loading="loading" :data="monthSaleGoalDetailsList" @selection-change="handleSelectionChange">
+        <el-table-column type="selection" width="55" align="center"/>
+        <el-table-column label="id唯一标识" align="center" prop="id"/>
+        <el-table-column label="编码" align="center" prop="code"/>
+        <el-table-column label="销售组织" align="center" prop="saleOrg"/>
+        <el-table-column label="销售区域" align="center" prop="saleZone"/>
+        <el-table-column label="客户" align="center" prop="custom"/>
+        <el-table-column label="部门" align="center" prop="dept"/>
+        <el-table-column label="制单人" align="center" prop="creator"/>
+        <el-table-column label="一级分类编码" align="center" prop="oneLevelClassifyCode"/>
+        <el-table-column label="一级分类" align="center" prop="oneLevelClassify"/>
+        <el-table-column label="二级分类编码" align="center" prop="twoLevelClassifyCode"/>
+        <el-table-column label="二级分类" align="center" prop="twoLevelClassify"/>
+        <el-table-column label="物料编码" align="center" prop="materialCode"/>
+        <el-table-column label="物料" align="center" prop="material"/>
+        <el-table-column label="科室" align="center" prop="department"/>
+        <el-table-column label="数量" align="center" prop="num"/>
+        <el-table-column label="月份" align="center" prop="monthly"/>
+        <el-table-column label="目标值" align="center" prop="goalValue"/>
+        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+          <template slot-scope="scope">
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-edit"
+              @click="handleUpdateDetails(scope.row)"
+              v-hasPermi="['goal_management:monthSaleGoalDetails:edit']"
+            >修改
+            </el-button>
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-delete"
+              @click="handleDeleteDetails(scope.row)"
+              v-hasPermi="['goal_management:monthSaleGoalDetails:remove']"
+            >删除
+            </el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <pagination
+        v-show="totalDetails>0"
+        :total="totalDetails"
+        :page.sync="queryParamsDetails.pageNum"
+        :limit.sync="queryParamsDetails.pageSize"
+        @pagination="getListDetails"
+      />
+
     </el-drawer>
 
-    <el-drawer :title="titleDetails" :append-to-body="true" :before-close="handleCloseDetails" :visible.sync="innerDrawer">
+    <el-drawer :title="titleDetails" :append-to-body="true" :before-close="handleCloseDetails"
+               :visible.sync="innerDrawer">
       <el-form ref="formDetails" :model="formDetails" :rules="rulesDetails" :inline="true" label-width="100px">
         <el-form-item label="编码" prop="code">
-          <el-input v-model="formDetails.code" placeholder="编码自动生成" disabled />
+          <el-input v-model="formDetails.code" placeholder="编码自动生成" disabled/>
         </el-form-item>
         <el-form-item label="销售组织" prop="saleOrg">
-          <el-popover-select-v2 v-model="formDetails.saleOrg" title="销售组织" valueKey="name" referName="ORG_PARAM" :dataMapping="{
+          <el-popover-select-v2 v-model="formDetails.saleOrg" title="销售组织" valueKey="name" referName="ORG_PARAM"
+                                :dataMapping="{
             saleOrg: 'name'
           }" :source.sync="formDetails" placeholder="请输入销售组织">
           </el-popover-select-v2>
         </el-form-item>
         <el-form-item label="销售区域" prop="saleZone">
-          <el-popover-select-v2 v-model="formDetails.saleZone" title="销售区域" valueKey="name" referName="ORG_PARAM" :dataMapping="{
+          <el-popover-select-v2 v-model="formDetails.saleZone" title="销售区域" valueKey="name" referName="ORG_PARAM"
+                                :dataMapping="{
             saleZone: 'name'
           }" :source.sync="formDetails" placeholder="请输入销售区域">
           </el-popover-select-v2>
         </el-form-item>
         <el-form-item label="客户" prop="custom">
-          <el-popover-select-v2 v-model="formDetails.custom" title="客户" valueKey="name" referName="CUSTOMER_PARAM" :dataMapping="{
+          <el-popover-select-v2 v-model="formDetails.custom" title="客户" valueKey="name" referName="CUSTOMER_PARAM"
+                                :dataMapping="{
             custom: 'name'
           }" :source.sync="formDetails" placeholder="请输入客户">
           </el-popover-select-v2>
         </el-form-item>
         <el-form-item label="部门" prop="dept">
-          <el-popover-select-v2 v-model="formDetails.dept" title="部门" valueKey="name" referName="DEPT_PARAM" :dataMapping="{
+          <el-popover-select-v2 v-model="formDetails.dept" title="部门" valueKey="name" referName="DEPT_PARAM"
+                                :dataMapping="{
             dept: 'name'
           }" :source.sync="formDetails" placeholder="请输入部门">
           </el-popover-select-v2>
         </el-form-item>
         <el-form-item label="制单人" prop="creator">
-          <el-popover-select-v2 v-model="formDetails.creator" title="制单人" valueKey="name" referName="CONTACTS_PARAM" :dataMapping="{
+          <el-popover-select-v2 v-model="formDetails.creator" title="制单人" valueKey="name" referName="CONTACTS_PARAM"
+                                :dataMapping="{
             creator: 'name'
           }" :source.sync="formDetails" placeholder="请输入部门">
           </el-popover-select-v2>
@@ -364,12 +374,34 @@
           ></el-select>
         </el-form-item>
         <el-form-item label="物料" prop="material">
-          <el-popover-select-v2 v-model="formDetails.material" title="物料" valueKey="name" referName="MATERIALCLASSIFY_PARAM" :dataMapping="{
+          <el-popover-select-v2 v-model="formDetails.material" title="物料" valueKey="name" referName="MATERIAL_PARAM"
+                                :dataMapping="{
             material: 'name', materialCode: 'code'
           }" :source.sync="formDetails" placeholder="请输入物料">
           </el-popover-select-v2>
         </el-form-item>
-        <el-form-item label="科室" prop=""></el-form-item>
+        <el-form-item label="科室" prop="department">
+          <el-input v-model="formDetails.department" placeholder="请输入科室"/>
+        </el-form-item>
+        <el-form-item label="数量" prop="num">
+          <el-input-number v-model="formDetails.num" :min="0" label="请输入数量"></el-input-number>
+        </el-form-item>
+        <el-form-item label="月份" prop="monthly">
+          <el-select v-model="formDetails.monthly" placeholder="请选择">
+            <el-option
+              v-for="item in monthList"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="目标值">
+          <el-input-number v-model="formDetails.goalValue" :precision="6" :step="0.1" :min="0"></el-input-number>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="submitFormDetails">确 定</el-button>
+        </el-form-item>
       </el-form>
     </el-drawer>
 
@@ -396,6 +428,7 @@ import {
 
 import TreeRefers from '@/components/Refers/treeRefer.vue'
 import ElPopoverSelectV2 from "@/components/popover-select-v2"
+
 export default {
   name: "MonthSaleGoal",
   components: {
@@ -487,35 +520,48 @@ export default {
         goalValue: null,
       },
       // 表单校验
-      rules: {
-      },
+      rules: {},
       rulesDetails: {},
       // 参照条件
-      referCondition: { type: '', isPage: true, title: '' },
+      referCondition: {type: '', isPage: true, title: ''},
       classList: [],
       // 年度列表
       annualList: [
-        { value: '2023', label: '2023' },
-        { value: '2024', label: '2024' },
-        { value: '2025', label: '2025' },
-        { value: '2026', label: '2026' },
-        { value: '2027', label: '2027' },
-        { value: '2028', label: '2028' },
-        { value: '2029', label: '2029' },
-        { value: '2030', label: '2030' },
-        { value: '2031', label: '2031' },
-        { value: '2034', label: '2034' },
-        { value: '2035', label: '2035' },
-        { value: '2036', label: '2036' },
-        { value: '2037', label: '2037' },
-        { value: '2038', label: '2038' },
-        { value: '2039', label: '2039' },
-        { value: '2040', label: '2040' },
-        { value: '2041', label: '2041' },
-        { value: '2042', label: '2042' },
-        { value: '2043', label: '2043' },
-        { value: '2044', label: '2044' },
-        { value: '2045', label: '2045' },
+        {value: '2023', label: '2023'},
+        {value: '2024', label: '2024'},
+        {value: '2025', label: '2025'},
+        {value: '2026', label: '2026'},
+        {value: '2027', label: '2027'},
+        {value: '2028', label: '2028'},
+        {value: '2029', label: '2029'},
+        {value: '2030', label: '2030'},
+        {value: '2031', label: '2031'},
+        {value: '2034', label: '2034'},
+        {value: '2035', label: '2035'},
+        {value: '2036', label: '2036'},
+        {value: '2037', label: '2037'},
+        {value: '2038', label: '2038'},
+        {value: '2039', label: '2039'},
+        {value: '2040', label: '2040'},
+        {value: '2041', label: '2041'},
+        {value: '2042', label: '2042'},
+        {value: '2043', label: '2043'},
+        {value: '2044', label: '2044'},
+        {value: '2045', label: '2045'},
+      ],
+      monthList: [
+        {value: '1', label: '1'},
+        {value: '2', label: '2'},
+        {value: '3', label: '3'},
+        {value: '4', label: '4'},
+        {value: '5', label: '5'},
+        {value: '6', label: '6'},
+        {value: '7', label: '7'},
+        {value: '8', label: '8'},
+        {value: '9', label: '9'},
+        {value: '10', label: '10'},
+        {value: '11', label: '11'},
+        {value: '12', label: '12'},
       ],
       // 月销售目标明细列表
       monthSaleGoalDetailsList: []
@@ -544,7 +590,7 @@ export default {
     },
     // 取消按钮
     cancel() {
-      this.open = false;
+      this.drawerAddOrEdit = false;
       this.reset();
     },
     // 表单重置
@@ -605,7 +651,7 @@ export default {
     // 多选框选中数据
     handleSelectionChange(selection) {
       this.ids = selection.map(item => item.id)
-      this.single = selection.length!==1
+      this.single = selection.length !== 1
       this.multiple = !selection.length
     },
     /** 新增按钮操作 */
@@ -644,7 +690,15 @@ export default {
         this.title = "修改月销售目标填报";
       });
     },
-    handleUpdateDetails(row) {},
+    handleUpdateDetails(row) {
+      this.resetDetails()
+      const id = row.id || this.ids
+      getMonthSaleGoalDetails(id).then(response => {
+        this.formDetails = response.data
+        this.innerDrawer = !this.innerDrawer
+        this.titleDetails = '月销售目标明细--修改'
+      })
+    },
     /** 提交按钮 */
     submitForm() {
       this.$refs["form"].validate(valid => {
@@ -669,17 +723,40 @@ export default {
         }
       });
     },
+    submitFormDetails() {
+      console.log(this.formDetails);
+      this.$refs["formDetails"].validate(valid => {
+        if (valid) {
+          if (this.formDetails.id != null) {
+            updateMonthSaleGoalDetails(this.formDetails).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.innerDrawer = false;
+              this.getListDetails();
+            });
+          } else {
+            addMonthSaleGoalDetails(this.formDetails).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.innerDrawer = false;
+              this.getListDetails();
+            });
+          }
+          this.resetDetails()
+        }
+      })
+    },
     /** 删除按钮操作 */
     handleDelete(row) {
       const ids = row.id || this.ids;
-      this.$modal.confirm('是否确认删除月销售目标填报编号为"' + ids + '"的数据项?').then(function() {
+      this.$modal.confirm('是否确认删除月销售目标填报编号为"' + ids + '"的数据项?').then(function () {
         return delMonthSaleGoal(ids);
       }).then(() => {
         this.getList();
         this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
+      }).catch(() => {
+      });
+    },
+    handleDeleteDetails(row) {
     },
-    handleDeleteDetails(row) {},
     /** 导出按钮操作 */
     handleExport() {
       this.download('goal_management/monthSaleGoal/export', {
@@ -697,7 +774,8 @@ export default {
             this.monthSaleGoalDetailsList = []
           }
         })
-        .catch(_ => {});
+        .catch(_ => {
+        });
     },
     handleCloseDetails(done) {
       this.$confirm('确认关闭?')
@@ -705,7 +783,8 @@ export default {
           done();
           this.resetDetails()
         })
-        .catch(_ => {});
+        .catch(_ => {
+        });
     },
     // 选择树形参照
     chooseTreeRefer(type, isPage, title) {