Browse Source

Merge branch 'dev_v2' of https://gogs.zfire.top/zfire-front/supply-front into dev_v2

zh 2 years ago
parent
commit
627205175d

+ 3 - 3
package-lock.json

@@ -4267,9 +4267,9 @@
       "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="
     },
     "@zjlib/element-plugins": {
-      "version": "2.1.14",
-      "resolved": "http://121.41.110.30:4873/@zjlib%2felement-plugins/-/element-plugins-2.1.14.tgz",
-      "integrity": "sha512-p9eL78UXPzCl3gb56J++U8pmHwVhCJ8UNKY62JNlTG0GO5vwBxBy/RUf7eZVRu++5fL2gtkyPncLN6b0O1Mpcw==",
+      "version": "2.1.16",
+      "resolved": "http://121.41.110.30:4873/@zjlib%2felement-plugins/-/element-plugins-2.1.16.tgz",
+      "integrity": "sha512-fS0kr39fLsqU4CLaEV0ZypwE1kh1igZtzin79CqItDfDydisnVjry+eWeScWKaT0i/nZORDSITH7/yMo8/MNDA==",
       "requires": {
         "@turf/turf": "^6.5.0",
         "@vuemap/vue-amap": "^0.1.12",

+ 1 - 1
package.json

@@ -15,7 +15,7 @@
     "test:ci": "npm run lint && npm run test:unit"
   },
   "dependencies": {
-    "@zjlib/element-plugins": "^2.1.14",
+    "@zjlib/element-plugins": "^2.1.16",
     "axios": "0.18.1",
     "clipboard": "^2.0.8",
     "concurrent-tasks": "^1.0.7",

+ 17 - 0
src/api/deliver_list_v2.js

@@ -0,0 +1,17 @@
+import request, { postBlob } from '@/utils/request'
+
+export function invoiceListRetailV2(data) {
+  return request({
+    url: `/invoice/listRetailV2?moduleId=${data.moduleId}`,
+    method: 'post',
+    data
+  })
+}
+
+export function invoiceListRetailV2Export(data, name) {
+  return postBlob({
+    url: '/invoice/listRetailV2/export',
+    data,
+    name
+  })
+}

+ 10 - 1
src/components/template/template-page-1.vue

@@ -270,7 +270,16 @@ export default {
             id: item.id,
             closable: true,
             paramCallback: () => {
-              return item.items.map(dav => ({ param: dav.param, compare: dav.compare, value: dav.value }))
+              return item.items.map(dav => {
+                if (dav.value[0] == '[' && dav.value[dav.value.length - 1] == ']') {
+                  return {
+                    param: dav.param,
+                    compare: dav.compare,
+                    value: dav.value.substring(1, dav.value.length - 1).split(',')
+                  }
+                }
+                return { param: dav.param, compare: dav.compare, value: dav.value }
+              })
             }
           }
         })

+ 0 - 1
src/main.js

@@ -22,7 +22,6 @@ function endLoading() {
 import * as echarts from 'echarts'
 Vue.prototype.$echarts = echarts
 import '@/styles/index.scss' // global css
-console.log('333')
 import App from './App'
 import store from './store'
 import router from './router'

+ 0 - 1
src/utils/request.js

@@ -6,7 +6,6 @@ import { getToken } from '@/utils/auth'
 var moduleId = ''
 
 export function setModuleId(val) {
-  console.log(val)
   moduleId = val
 }
 

+ 14 - 0
src/views/deposit_home/deposit_list.vue

@@ -10,6 +10,7 @@
       :tableAttributes="tableAttributes"
       :tableEvents="tableEvents"
       :columnParsing="columnParsing"
+      :fieldBeansHook="fieldBeansHook"
     >
     </template-page>
     <div class="app-container" v-else-if="showPage == 2">
@@ -184,6 +185,19 @@ export default {
     }
   },
   methods: {
+    fieldBeansHook(list) {
+      if (this.isCustomer) {
+        var newlist = [...list]
+        for (var i = 0; i < newlist.length; i++) {
+          if (newlist[i].jname === 'geLiInerNote') {
+            newlist.splice(i, 1)
+            break
+          }
+        }
+        return newlist
+      }
+      return list
+    },
     // 列表请求函数
     getList: depositManageHomeList,
     // 列表导出函数

+ 104 - 325
src/views/supply/deliver/deliver_list.vue

@@ -1,294 +1,16 @@
 <template>
-  <div class="app-container">
-    <div v-show="!isShowDetail">
-      <!-- 筛选条件 -->
-      <div class="screen-container">
-        <Collapse :screen-form="screenForm">
-          <template #right_btn>
-            <el-button size="mini" @click="resetScreenForm">清空</el-button>
-            <el-button size="mini" type="primary" @click="submitScreenForm">搜索</el-button>
-          </template>
-          <template #search>
-            <el-form ref="screenForm" :model="screenForm" label-width="85px" size="mini" label-position="left">
-              <el-row :gutter="20">
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="发货单号" prop="orderNum">
-                    <el-input v-model="screenForm.orderNum" placeholder="请输入发货单号"></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="订单号" prop="orderNo">
-                    <el-input v-model="screenForm.orderNo" placeholder="请输入订单号"></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="经销商编号" prop="jxsNum">
-                    <el-input v-model="screenForm.jxsNum" placeholder="请输入经销商编号"></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="经销商名称" prop="jxsName">
-                    <el-input v-model="screenForm.jxsName" placeholder="请输入经销商名称"></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="产品名称" prop="chName">
-                    <el-input v-model="screenForm.chName" placeholder="请输入产品名称"></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="规格型号" prop="model">
-                    <el-input v-model="screenForm.model" placeholder="请输入规格型号"></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item prop="type" label="产品类别">
-                    <el-select v-model="screenForm.type" placeholder="选择产品类别" style="width: 100%" clearable>
-                      <el-option
-                        v-for="item in categoryList"
-                        :key="item.name"
-                        :label="item.name"
-                        :value="item.name"
-                      ></el-option>
-                    </el-select>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="发货日期" prop="date">
-                    <el-date-picker
-                      v-model="screenForm.date"
-                      type="datetimerange"
-:default-time="['00:00:00','23:59:59']"
-                      range-separator="至"
-                      style="width: 100%"
-                      value-format="yyyy-MM-dd HH:mm:ss"
-                      start-placeholder="开始日期"
-                      end-placeholder="结束日期"
-                    >
-                    </el-date-picker>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="业务员" prop="salesMan">
-                    <el-select
-                      v-model="screenForm.salesMan"
-                      placeholder="选择业务员"
-                      clearable
-                      filterable
-                      style="width: 100%"
-                    >
-                      <el-option
-                        v-for="item in salesmanList"
-                        :key="item.adminUserId"
-                        :label="item.nickName"
-                        :value="item.adminUserId"
-                      >
-                      </el-option>
-                    </el-select>
-                  </el-form-item>
-                </el-col>
-              </el-row>
-            </el-form>
-          </template>
-        </Collapse>
-      </div>
-
-      <div class="mymain-container">
-        <div class="btn-group clearfix">
-          <div class="fr">
-            <ExportButton :exUrl="'ship/eExport'" :exParams="exParams" />
-          </div>
-        </div>
-        <div class="table">
-          <el-table
-            v-loading="listLoading"
-            :data="dataList"
-            element-loading-text="Loading"
-            border
-            fit
-            highlight-current-row
-            stripe
-            show-summary
-            :summary-method="$getSummaries"
-          >
-            <el-table-column
-              align="left"
-              label="销售类型"
-              prop="saleTypeName"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column>
-
-            <el-table-column align="left" label="发货单号" prop="id" min-width="120" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.id" />
-                <span>{{ scope.row.id }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="left"
-              label="发货日期"
-              prop="orderTime"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="仓库"
-              prop="correspondName"
-              min-width="80"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column align="left" label="订单号" prop="mainOrderId" min-width="140" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.mainOrderId" />
-                <span>{{ scope.row.mainOrderId }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="left"
-              label="经销商编码"
-              prop="customerNumber"
-              min-width="100"
-              show-overflow-tooltip
-            >
-              <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.customerNumber" />
-                <span>{{ scope.row.customerNumber }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column align="left" label="经销商名称" prop="customerName" min-width="250" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.customerName" />
-                <span>{{ scope.row.customerName }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="left"
-              label="存货类别"
-              prop="categoryName"
-              min-width="80"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column align="left" label="物料编码" prop="materialCode" min-width="120" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.materialCode" />
-                <span>{{ scope.row.materialCode }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="left"
-              label="产品编码"
-              prop="materialOldNumber"
-              min-width="140"
-              show-overflow-tooltip
-            >
-              <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.materialOldNumber" />
-                <span>{{ scope.row.materialOldNumber }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column align="left" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.materialName" />
-                <span>{{ scope.row.materialName }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column align="left" label="规格型号" prop="specification" min-width="350" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.specification" />
-                <span>{{ scope.row.specification }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column align="left" label="产品类别" prop="categoryName" min-width="100" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <span>{{ scope.row.categoryName }}</span>
-              </template>
-            </el-table-column>
-            <!-- <el-table-column align="left" label="文件编号" prop="itemFileNo" min-width="100" show-overflow-tooltip/> -->
-            <el-table-column
-              align="right"
-              label="数量"
-              prop="refundableQty"
-              min-width="100"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="right"
-              label="未出库数量"
-              prop="notOutNumber"
-              min-width="100"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column align="right" label="价税合计" prop="payAmount" min-width="100" show-overflow-tooltip>
-              <template slot-scope="scope">
-                {{ scope.row.payAmount | numToFixed }}
-              </template>
-            </el-table-column>
-            <el-table-column align="right" label="无税金额" prop="noTotalAmount" min-width="100" show-overflow-tooltip>
-              <template slot-scope="scope">
-                {{ scope.row.noTotalAmount | numToFixed }}
-              </template>
-            </el-table-column>
-            <el-table-column align="right" label="无税单价" prop="afterTaxPrice" min-width="100" show-overflow-tooltip>
-              <template slot-scope="scope">
-                {{ scope.row.afterTaxPrice | numToFixed }}
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="left"
-              label="订单备注"
-              prop="headerRemark"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="发货申请备注"
-              prop="remark"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="表体备注"
-              prop="invoiceRemark"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="业务员"
-              prop="serviceName"
-              min-width="100"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column align="center" label="操作" width="200" fixed="right">
-              <template slot-scope="scope">
-                <el-button type="text" @click="toDetail(scope.row)">详情</el-button>
-                <el-button type="text" @click="getPassword(scope.row.id)">获取密码</el-button>
-                <el-button type="text" @click="openShareDetail(scope.row.id)">密码记录</el-button>
-              </template>
-            </el-table-column>
-          </el-table>
-        </div>
-      </div>
-      <div class="pagination clearfix">
-        <div class="fr">
-          <el-pagination
-            @size-change="handleSizeChange"
-            @current-change="handleCurrentChange"
-            :current-page="currentPage"
-            :page-sizes="[10, 20, 30, 50]"
-            :page-size="10"
-            layout="total, sizes, prev, pager, next, jumper"
-            :total="listTotal"
-          >
-          </el-pagination>
-        </div>
-      </div>
-    </div>
-
+  <div style="width: 100%; height: 100%; overflow-y: auto">
+    <template-page
+      v-if="!isShowDetail"
+      ref="pageRef"
+      :getList="getList"
+      :exportList="exportList"
+      :operation="operation()"
+      :operationColumnWidth="200"
+      :columnParsing="columnParsing"
+      :optionsEvensGroup="optionsEvensGroup"
+    >
+    </template-page>
     <!-- 密码记录 -->
     <el-dialog
       title="密码记录"
@@ -329,7 +51,6 @@
         <el-button @click="isShowDialog = false">关 闭</el-button>
       </div>
     </el-dialog>
-
     <DeliverDetail :listItem="queryItem" v-if="isShowDetail" @backListFormDetail="backList" ref="refDetail" />
   </div>
 </template>
@@ -337,11 +58,13 @@
 <script>
 import { getDeliverList, getPassword, getPasswordRecord } from '@/api/supply/deliver'
 import { getCategoryList, getSalesmanList } from '@/api/common'
+import { invoiceListRetailV2, invoiceListRetailV2Export } from '@/api/deliver_list_v2'
 import DeliverDetail from '@/views/supply/deliver/components/deliver_detail'
-
+import TemplatePage from '@/components/template/template-page-1.vue'
 export default {
   components: {
-    DeliverDetail
+    DeliverDetail,
+    TemplatePage
   },
   data() {
     return {
@@ -372,7 +95,19 @@ export default {
       dialogTable_pageSize: 10, // 密码记录 - 每页数量
       dialogTable_listTotal: 0, // 密码记录 - 列表总数
 
-      queryItem: {}
+      queryItem: {},
+      // 事件组合
+      optionsEvensGroup: [],
+      // 表格属性
+      tableAttributes: {
+        // 启用勾选列
+        selectColumn: false
+      },
+      // 表格事件
+      tableEvents: {
+        'selection-change': this.selectionChange
+      },
+      recordSelected: []
     }
   },
 
@@ -397,12 +132,56 @@ export default {
   },
 
   created() {
-    this.getSalesmanList()
-    this.getCategoryList()
-    this.getList()
+    // this.getSalesmanList()
+    // this.getCategoryList()
+    // this.getList()
   },
 
   methods: {
+    // 列表请求函数
+    getList: invoiceListRetailV2,
+    // 列表导出函数
+    exportList: invoiceListRetailV2Export,
+    // 表格列解析渲染数据更改
+    columnParsing(item, defaultData) {
+      return defaultData
+    },
+    // 监听勾选变化
+    selectionChange(data) {
+      this.recordSelected = data
+    },
+    operation() {
+      return (h, { row, index, column }) => {
+        return (
+          <div class="operation-btns">
+            <el-button
+              type="text"
+              onClick={() => {
+                this.toDetail(row)
+              }}
+            >
+              详情
+            </el-button>
+            <el-button
+              type="text"
+              onClick={() => {
+                this.getPassword(row.id)
+              }}
+            >
+              获取密码
+            </el-button>
+            <el-button
+              type="text"
+              onClick={() => {
+                this.openShareDetail(row.id)
+              }}
+            >
+              密码记录
+            </el-button>
+          </div>
+        )
+      }
+    },
     // 获取业务员列表
     getSalesmanList() {
       getSalesmanList({
@@ -426,34 +205,34 @@ export default {
     },
 
     // 查询列表
-    getList() {
-      this.listLoading = true
+    // getList() {
+    //   this.listLoading = true
 
-      let params = {
-        pageNum: this.currentPage,
-        pageSize: this.pageSize,
-        id: this.screenForm.orderNum,
-        mainOrderId: this.screenForm.orderNo,
-        customerNumber: this.screenForm.jxsNum,
-        customerName: this.screenForm.jxsName,
-        productName: this.screenForm.chName,
-        specification: this.screenForm.model,
-        startTime: this.screenForm.date ? this.screenForm.date[0] : '',
-        endTime: this.screenForm.date ? this.screenForm.date[1] : '',
-        categoryName: this.screenForm.type,
-        serviceId: this.screenForm.salesMan
-      }
-      getDeliverList(params).then(res => {
-        res.data.records.forEach(item => {
-          item.notOutNumber = item.salesStatus ? 0 : item.refundableQty
-          item.sums1 = ['refundableQty', 'notOutNumber']
-          item.sums2 = ['payAmount', 'afterTaxPrice', 'noTotalAmount']
-        })
-        this.dataList = res.data.records
-        this.listTotal = res.data.total
-        this.listLoading = false
-      })
-    },
+    //   let params = {
+    //     pageNum: this.currentPage,
+    //     pageSize: this.pageSize,
+    //     id: this.screenForm.orderNum,
+    //     mainOrderId: this.screenForm.orderNo,
+    //     customerNumber: this.screenForm.jxsNum,
+    //     customerName: this.screenForm.jxsName,
+    //     productName: this.screenForm.chName,
+    //     specification: this.screenForm.model,
+    //     startTime: this.screenForm.date ? this.screenForm.date[0] : '',
+    //     endTime: this.screenForm.date ? this.screenForm.date[1] : '',
+    //     categoryName: this.screenForm.type,
+    //     serviceId: this.screenForm.salesMan
+    //   }
+    //   getDeliverList(params).then(res => {
+    //     res.data.records.forEach(item => {
+    //       item.notOutNumber = item.salesStatus ? 0 : item.refundableQty
+    //       item.sums1 = ['refundableQty', 'notOutNumber']
+    //       item.sums2 = ['payAmount', 'afterTaxPrice', 'noTotalAmount']
+    //     })
+    //     this.dataList = res.data.records
+    //     this.listTotal = res.data.total
+    //     this.listLoading = false
+    //   })
+    // },
 
     // 提交筛选表单
     submitScreenForm() {
@@ -463,7 +242,7 @@ export default {
 
     // 重置筛选表单
     resetScreenForm() {
-        this.$refs.screenForm.resetFields()
+      this.$refs.screenForm.resetFields()
       this.currentPage = 1
       this.getList()
     },