Sfoglia il codice sorgente

消耗单明细完成

黄梓星 1 anno fa
parent
commit
7997b898ee
3 ha cambiato i file con 213 aggiunte e 60 eliminazioni
  1. 31 0
      src/api/expend/expendMx.js
  2. 89 44
      src/views/expend/expendMx.vue
  3. 93 16
      src/views/expend/expendMxDetail.vue

+ 31 - 0
src/api/expend/expendMx.js

@@ -15,4 +15,35 @@ export function pullMx(data) {
     method: 'post',
     data: data
   })
+}
+// 消耗单明细详情
+export function Mxdetail(id) {
+  return request({
+    url: `/pu/doc/${id}`,
+    method: 'get',
+  })
+}
+// 消耗单明细汇总
+export function huizongMX(data) {
+  return request({
+    url: `/pu/doc/pullToCcd`,
+    method: 'post',
+    data: data
+  })
+}
+// 消耗单明细下拉数据
+export function editSaveMx(data) {
+  return request({
+    url: `/pu/doc`,
+    method: 'put',
+    data: data
+  })
+}
+// 消耗单明细提交OA
+export function toOAs(data) {
+  return request({
+    url: `/pu/doc/toOa`,
+    method: 'post',
+    data: data
+  })
 }

+ 89 - 44
src/views/expend/expendMx.vue

@@ -8,9 +8,9 @@
       <el-form class="search_area" label-width="auto">
         <el-row :gutter="10">
           <el-col :span="1.5">
-            <el-form-item label="通用名称">
+            <el-form-item label="编码">
                 <el-input
-                  v-model.trim="params.commonName"
+                  v-model.trim="params.code"
                   size="mini"
                   clearable
                   style="width: 200px"
@@ -19,31 +19,36 @@
           </el-col>
 
           <el-col :span="1.5">
-            <el-form-item label="注册名">
-                <el-input
-                  v-model.trim="params.registrationName"
-                  size="mini"
-                  clearable
-                  style="width: 200px"
-                />
+            <el-form-item label="结算开始日期">
+              <el-date-picker
+                v-model="params.startDate"
+                clearable
+                type="date"
+                value-format="yyyy-MM-dd"
+                size="mini"
+                style="width: 200px"
+              >
+              </el-date-picker>
               </el-form-item>
           </el-col>
 
           <el-col :span="1.5">
-            <el-form-item label="厂家名称">
-                <el-input
-                  v-model.trim="params.factoryName"
-                  size="mini"
-                  clearable
-                  style="width: 200px"
-                />
+            <el-form-item label="结算截止日期">
+              <el-date-picker
+                v-model="params.endDate"
+                clearable
+                type="date"
+                value-format="yyyy-MM-dd"
+                size="mini"
+                style="width: 200px"
+              ></el-date-picker>
               </el-form-item>
           </el-col>
 
           <el-col :span="1.5">
-            <el-form-item label="号">
+            <el-form-item label="结算单号">
                 <el-input
-                  v-model.trim="params.model"
+                  v-model.trim="params.settleNo"
                   size="mini"
                   clearable
                   style="width: 200px"
@@ -53,15 +58,15 @@
 
           <el-col :span="1.5">
             <el-form-item label-width="80px">
-              <el-button type="primary" size="mini" icon="el-icon-search" @click="searchList">搜 索</el-button>
-              <el-button size="mini" plain icon="el-icon-refresh" @click="resetList">重 置</el-button>
+              <el-button type="primary" size="mini" icon="el-icon-search" @click="searchList">搜索</el-button>
+              <el-button size="mini" plain icon="el-icon-refresh" @click="resetList">重置</el-button>
             </el-form-item>
           </el-col>
         </el-row>
       </el-form>
 
       <div class="btn_grooup">
-        <el-button type="primary" size="mini" @click="submits">提交</el-button>
+        <!-- <el-button type="primary" size="mini" @click="submits">提交</el-button> -->
         <el-button type="primary" size="mini" @click="pulldata">下拉数据</el-button>
         <el-button type="primary" size="mini" @click="huizong">汇总</el-button>
       </div>
@@ -108,9 +113,9 @@
 </template>
 
 <script>
-import { mxList, pullMx } from '@/api/expend/expendMx.js'
+import { mxList, pullMx, huizongMX } from '@/api/expend/expendMx.js'
 export default {
-  dicts: ['sys_equipment_type'],
+  dicts: ['sys_status'],
   components: {
     Add: () => import("./expendMxDetail.vue"),
     ElSuperUxTable: () => import("@/components/super-ux-table/index.vue"),
@@ -126,17 +131,10 @@ export default {
       size: "mini",
       loading: false,
       params: {
-        commonName: '',
-        registrationName: '',
-        deviceCategory: '',
-        departmentCode: '',
-        factoryName: '',
-        model: '',
-        referencePrice: '',
-        parameters: '',
-        isDeleteFile: '',
-        isProjectOrFactoryEmpower: '',
-        remark: ''
+        code: '',
+        startDate: '',
+        endDate: '',
+        settleNo: '',
       },
       pageInfo: {
         pageNum: 1,
@@ -151,7 +149,11 @@ export default {
         { item: { key: "custCode", title: "医院编码" }, attr: {} },
         { item: { key: "supplierCode", title: "供应商编码" }, attr: {} },
         { item: { key: "supplierName", title: "供应商名称" }, attr: {} },
-        { item: { key: "isSum", title: "是否汇总" }, attr: {} },
+        { item: { key: "isSum", title: "是否汇总" }, attr: {
+          formatter: (prop) => {
+              return prop.isSum == '0' ? '是' : '否'
+            },
+        } },
         { item: { key: "settleNo", title: "结算单号"}, attr: {} },
         { item: { key: "startDate", title: "结算开始日期" }, attr: {} },
         { item: { key: "endDate", title: "结算截止日期" }, attr: {} },
@@ -160,7 +162,11 @@ export default {
         // { item: { key: "parameters", title: "参数" }, attr: {} },
         { item: { key: "remark", title: "备注"}, attr: {} },
         { item: { key: "code", title: "编码"}, attr: {} },
-        { item: { key: "verifyState", title: "单据状态"}, attr: {} },
+        { item: { key: "verifyState", title: "单据状态"}, attr: {
+          is: "el-dict-tag",
+          dictName: "sys_status",
+          } 
+        },
       ].map(({ item, attr }) => ({
       attr,
       item: {
@@ -178,14 +184,25 @@ export default {
     this.useQuery(this.params, this.pageInfo)
   },
   methods: {
-    searchList() {},
-    resetList() {},
+    searchList() {
+      this.useQuery(this.params, this.pageInfo)
+    },
+    resetList() {
+      this.params = {
+        code: '',
+        startDate: '',
+        endDate: '',
+        settleNo: '',
+      }
+      this.useQuery(this.params, this.pageInfo)
+    },
     useSee() {},
     useSelect() {},
     handleSelectionChange(selection) {
       console.log('选中', selection)
-      this.ids = selection.map(item => item.id)
-      console.log('选中数组', this.ids)
+      // this.ids = selection.map(item => item.id)
+      // console.log('选中数组', this.ids)
+      this.ids = selection
     },
     rowSelect(row) {
       this.$refs.tables.toggleRowSelection([{row: row}]);
@@ -205,13 +222,41 @@ export default {
       this.disable = false
     },
     pulldata() {
+      this.$modal.loading("正在下拉数据,请稍后...");
       pullMx().then(res => {
-        
+        if(res.code === 200) {
+          this.$modal.closeLoading();
+          this.$modal.notifySuccess(res.msg);
+          this.useQuery(this.params, this.pageInfo)
+        }
+      }).catch(err => {
+        this.$modal.closeLoading();
       })
     },
-    huizong() {},
-    check() {},
-    edit() {},
+    huizong() {
+      if (this.ids.length <= 0) {
+        this.$modal.notifyWarning("至少勾选一条数据");
+      } else {
+        huizongMX(this.ids).then(res => {
+          if(res.code === 200) {
+            this.$modal.notifySuccess(res.msg);
+          }
+       })
+      }
+      // huizongMX()
+    },
+    check(row) {
+      this.isList = false
+      this.page = 'check'
+      this.rowDetail = row
+      this.disable = true
+    },
+    edit(row) {
+      this.isList = false
+      this.page = 'edit'
+      this.rowDetail = row
+      this.disable = false
+    },
   }
 }
 </script>

+ 93 - 16
src/views/expend/expendMxDetail.vue

@@ -14,7 +14,8 @@
 
           <el-col :span="1.5">
             <el-form-item label="服务费合计" prop="serviceFee">
-              <el-input style="width: 200px" clearable disabled size="mini" v-model="basicForm.serviceFee">
+              <el-input style="width: 200px" clearable disabled size="mini" v-model="publishedBooksMessage">
+              <!-- <el-input style="width: 200px" clearable disabled size="mini" v-model="basicForm.serviceFee"> -->
               </el-input>
             </el-form-item>
           </el-col>
@@ -86,7 +87,7 @@
 
           <el-col :span="1.5">
             <el-form-item label="合计金额" prop="totalAmount">
-              <el-input style="width: 200px" clearable disabled size="mini" v-model="basicForm.totalAmount">
+              <el-input style="width: 200px" clearable disabled size="mini" v-model="publishedBooksMessage2">
               </el-input>
             </el-form-item>
           </el-col>
@@ -102,6 +103,7 @@
       </el-form>
 
       <div class="btn_group">
+        <!-- <el-button type="primary" size="mini"  @click="toOA" v-if="sonPageStu == 'check'">提交</el-button> -->
         <el-button type="primary" size="mini"  @click="editPage" v-if="sonPageStu == 'check'">编辑</el-button>
         <el-button type="primary" size="mini"  @click="save" v-if="sonPageStu == 'add' || sonPageStu == 'edit'">保存</el-button>
         <el-button size="mini" plain @click="back">返回</el-button>
@@ -110,13 +112,13 @@
       <div class="btn_grooup">
         <span>明细信息</span>
         <div>
-          <el-button type="primary" size="mini" @click="addLine" v-if="!sonDisable">增行</el-button>
-          <el-button type="primary" size="mini" @click="delLines" v-if="!sonDisable">删行</el-button>
+          <!-- <el-button type="primary" size="mini" @click="addLine" v-if="!sonDisable">增行</el-button> -->
+          <!-- <el-button type="primary" size="mini" @click="delLines" v-if="!sonDisable">删行</el-button> -->
         </div>
       </div>
 
       <ux-grid
-        :data="basicForm.sysMaterialDeviceOriginItemList"
+        :data="basicForm.itemList"
         border
         :cell-style="{ borderColor: '#c0c0c0' }"
         :header-cell-style="{ borderColor: '#c0c0c0' }"
@@ -140,10 +142,10 @@
         <ux-table-column resizable title="规格型号" field="itemSpec" align="center"/>
         <ux-table-column resizable title="厂家" field="manufactor" align="center"/>
         <ux-table-column resizable title="单位" field="itemUom" align="center"/>
-        <ux-table-column resizable title="是否带量" field="isWhether" align="center"/>
-        <ux-table-column resizable title="服务费率" field="ratio" align="center" edit-render>
+        <ux-table-column resizable title="是否带量" field="isWhether" align="center" :formatter="hangStatus" />
+        <ux-table-column resizable title="服务费率(%)" field="ratio" align="center" edit-render>
           <template v-slot:edit="scope">
-            <el-input clearable :disabled="sonDisable" size="mini" v-model="scope.row.ratio"/>
+            <el-input-number clearable :disabled="sonDisable" :min="1" size="mini" v-model="scope.row.ratio" @input="changeFei(scope.rowIndex, scope.row)"/>
           </template>
         </ux-table-column>
         <ux-table-column resizable title="数量" field="qty" align="center"/>
@@ -151,13 +153,13 @@
         <ux-table-column resizable title="小计" field="amount" align="center"/>
         <ux-table-column resizable title="备注" field="detailRemark" align="center"/>
         <ux-table-column resizable title="服务费" field="serviceFee" align="center"/>
-        <ux-table-column resizable title="是否汇总" field="isSum" align="center"/>
       </ux-grid>
     </el-card>
   </div>
 </template>
 
 <script>
+import { Mxdetail, editSaveMx, toOAs } from '@/api/expend/expendMx.js'
 export default {
   props: ['pageStu','row', 'disable'],
   model: {
@@ -172,7 +174,7 @@ export default {
       basicForm: {
         id: '',
         code: '',
-        serviceFee: '',
+        serviceFee: 0,
         custCode: '',
         custName: '',
         supplierCode: '',
@@ -182,14 +184,65 @@ export default {
         endDate: '',
         totalAmount: '',
         remark: '',
+        itemList: []
       },
       basicRules: {},
       ids:[],
     }
   },
+  created() {
+    if(this.pageStu == 'check') {
+      console.log('数据', this.row)
+      this.getDetails(this.row)
+    } else if(this.pageStu == 'edit') {
+      this.getDetails(this.row)
+    } else if (this.pageStu == 'add') {
+
+    }
+  },
+  computed: {
+    // 一个计算属性的 getter
+    publishedBooksMessage() {
+      // `this` 指向当前组件实例
+      // var s = 0
+      this.basicForm.serviceFee = 0
+      this.basicForm.itemList.forEach(item => {
+        this.basicForm.serviceFee += Number(item.serviceFee)
+      })
+      return this.basicForm.serviceFee
+    },
+      publishedBooksMessage2() {
+      // `this` 指向当前组件实例
+      // var s = 0
+      this.basicForm.totalAmount = 0
+      this.basicForm.itemList.forEach(item => {
+        this.basicForm.totalAmount += Number(item.amount)
+      })
+      return this.basicForm.totalAmount
+    }
+  },
   methods: {
-    editPage() {},
-    save() {},
+    getDetails(row) {
+      Mxdetail(row.id).then(res => {
+        if (res.code === 200) {
+          this.basicForm = res.data
+        }
+      })
+    },
+    editPage() {
+      this.sonPageStu = 'edit'
+      this.sonDisable = false
+    },
+    save() {
+      editSaveMx(this.basicForm).then(res => {
+        if(res.code === 200) {
+          this.$modal.notifySuccess("编辑保存成功");
+          this.sonPageStu = 'check'
+          this.sonDisable = true
+          this.getDetails(this.row)
+        }
+      })
+    },
     back() {
       this.$emit('jugislist', true)
       this.$emit('refresh')
@@ -200,11 +253,35 @@ export default {
       })
       console.log('选中数组', this.ids)
     },
-    addLine() {
-
+    addLine() {},
+    delLines() {},
+    toOA() {
+      this.$modal.loading("正在提交,请稍后...");
+      toOAs(this.basicForm).then(res => {
+        if (res.code === 200) {
+          this.$modal.closeLoading();
+          this.$modal.notifySuccess(res.msg);
+          this.back()
+        }
+      }).catch(err => {
+        this.$modal.closeLoading();
+      })
     },
-    delLines() {
-
+    changeFei(index, row) {
+      console.log(index)
+      console.log(row)
+      row.serviceFee = ((row.ratio*0.01) * row.amount).toFixed(2)
+      // this.basicForm.serviceFee = this.basicForm.itemList.map(item => {
+      //   return item.serviceFee += item.serviceFee
+      // })
+    },
+    hangStatus(row) {
+      switch (row.row.isWhether) {
+        case "0":
+          return "是";
+        case "2":
+          return "否";
+      }
     },
   }
 }