Jelajahi Sumber

Merge remote-tracking branch 'origin/develop' into develop

FengChaoYu 3 tahun lalu
induk
melakukan
cd29c18183

+ 10 - 0
src/api/finance/account_list.js

@@ -32,3 +32,13 @@ export function getWalletCustomerList(params) {
     params,
   });
 }
+
+// 贷款对账列表
+
+export function getFeconciliateList(params) {
+  return request({
+    url: "/finance/reconciliate/list",
+    method: "get",
+    params,
+  });
+}

+ 11 - 0
src/api/stock.js

@@ -35,3 +35,14 @@ export function getReservedList(params) {
     params
   })
 }
+
+
+
+// 获取仓库现存列表
+export function getListStockToDay(params) {
+  return request({
+    url: '/stock/manager/listStockToDay',
+    method: 'get',
+    params
+  })
+}

+ 10 - 15
src/layout/components/Navbar.vue

@@ -144,20 +144,14 @@
 </template>
 
 <script>
-import { getRebateOrderMsg } from "@/api/dashboard";
-import { mapGetters } from "vuex";
-import Breadcrumb from "@/components/Breadcrumb";
-import Hamburger from "@/components/Hamburger";
-import Screenfull from "@/components/Screenfull";
-import NavMenu from "@/components/NavMenu";
-import { getNoticeListCount } from "@/api/notice";
-import {
-  checkEngineAccount,
-  bindEngineAccount,
-  delEngineAccount,
-} from "@/api/setting";
-import request from "@/utils/request";
-import { getToken } from '@/utils/auth'
+import { getRebateOrderMsg } from '@/api/dashboard'
+import { mapGetters } from 'vuex'
+import Breadcrumb from '@/components/Breadcrumb'
+import Hamburger from '@/components/Hamburger'
+import Screenfull from '@/components/Screenfull'
+import NavMenu from '@/components/NavMenu'
+import { getNoticeListCount } from '@/api/notice'
+import { bindEngineAccount, checkEngineAccount } from '@/api/setting'
 
 export default {
   data() {
@@ -234,8 +228,9 @@ export default {
     async logout() {
       await this.$store.dispatch("user/logout");
       // this.$router.push(`/login?redirect=${this.$route.fullPath}`)
-
+      this.$store.commit('tagsView/SET_RESET_VIES')
       this.$router.push(`/login`);
+
     },
     initNotice() {
       getNoticeListCount().then((res) => {

+ 1 - 1
src/layout/components/TagsView/index.vue

@@ -42,7 +42,7 @@ export default {
   },
   computed: {
     visitedViews() {
-      console.log(this.$store.state.tagsView.visitedViews)
+
       return this.$store.state.tagsView.visitedViews
     },
     routes() {

+ 4 - 2
src/permission.js

@@ -88,7 +88,8 @@ router.beforeEach(async (to, from, next) => {
           // remove token and go to login page to re-login
           await store.dispatch("user/resetToken");
           Message.error(error || "Has Error");
-          next(`/login?redirect=${to.path}`);
+          next('/login')
+          // next(`/login?redirect=${to.path}`);
           NProgress.done();
         }
       }
@@ -101,7 +102,8 @@ router.beforeEach(async (to, from, next) => {
       next();
     } else {
       // other pages that do not have permission to access are redirected to the login page.
-      next(`/login?redirect=${to.path}`);
+      // next(`/login?redirect=${to.path}`);
+      next('/login')
       NProgress.done();
     }
   }

+ 80 - 78
src/store/modules/tagsView.js

@@ -1,160 +1,162 @@
 const state = {
   visitedViews: [],
-  cachedViews: []
-}
+  cachedViews: [],
+};
 
 const mutations = {
   ADD_VISITED_VIEW: (state, view) => {
-    if (state.visitedViews.some(v => v.path === view.path)) return
+    if (state.visitedViews.some((v) => v.path === view.path)) return;
     state.visitedViews.push(
       Object.assign({}, view, {
-        title: view.meta.title || 'no-name'
+        title: view.meta.title || "no-name",
       })
-    )
+    );
   },
   ADD_CACHED_VIEW: (state, view) => {
-    if (state.cachedViews.includes(view.name)) return
+    if (state.cachedViews.includes(view.name)) return;
     if (!view.meta.noCache) {
-      state.cachedViews.push(view.name)
+      state.cachedViews.push(view.name);
     }
   },
-
+  SET_RESET_VIES: (state, view) => {
+    state.visitedViews = [];
+  },
   DEL_VISITED_VIEW: (state, view) => {
     for (const [i, v] of state.visitedViews.entries()) {
       if (v.path === view.path) {
-        state.visitedViews.splice(i, 1)
-        break
+        state.visitedViews.splice(i, 1);
+        break;
       }
     }
   },
   DEL_CACHED_VIEW: (state, view) => {
-    const index = state.cachedViews.indexOf(view.name)
-    index > -1 && state.cachedViews.splice(index, 1)
+    const index = state.cachedViews.indexOf(view.name);
+    index > -1 && state.cachedViews.splice(index, 1);
   },
 
   DEL_OTHERS_VISITED_VIEWS: (state, view) => {
-    state.visitedViews = state.visitedViews.filter(v => {
-      return v.meta.affix || v.path === view.path
-    })
+    state.visitedViews = state.visitedViews.filter((v) => {
+      return v.meta.affix || v.path === view.path;
+    });
   },
   DEL_OTHERS_CACHED_VIEWS: (state, view) => {
-    const index = state.cachedViews.indexOf(view.name)
+    const index = state.cachedViews.indexOf(view.name);
     if (index > -1) {
-      state.cachedViews = state.cachedViews.slice(index, index + 1)
+      state.cachedViews = state.cachedViews.slice(index, index + 1);
     } else {
       // if index = -1, there is no cached tags
-      state.cachedViews = []
+      state.cachedViews = [];
     }
   },
 
-  DEL_ALL_VISITED_VIEWS: state => {
+  DEL_ALL_VISITED_VIEWS: (state) => {
     // keep affix tags
-    const affixTags = state.visitedViews.filter(tag => tag.meta.affix)
-    state.visitedViews = affixTags
+    const affixTags = state.visitedViews.filter((tag) => tag.meta.affix);
+    state.visitedViews = affixTags;
   },
-  DEL_ALL_CACHED_VIEWS: state => {
-    state.cachedViews = []
+  DEL_ALL_CACHED_VIEWS: (state) => {
+    state.cachedViews = [];
   },
 
   UPDATE_VISITED_VIEW: (state, view) => {
     for (let v of state.visitedViews) {
       if (v.path === view.path) {
-        v = Object.assign(v, view)
-        break
+        v = Object.assign(v, view);
+        break;
       }
     }
-  }
-}
+  },
+};
 
 const actions = {
   addView({ dispatch }, view) {
-    dispatch('addVisitedView', view)
-    dispatch('addCachedView', view)
+    dispatch("addVisitedView", view);
+    dispatch("addCachedView", view);
   },
   addVisitedView({ commit }, view) {
-    commit('ADD_VISITED_VIEW', view)
+    commit("ADD_VISITED_VIEW", view);
   },
   addCachedView({ commit }, view) {
-    commit('ADD_CACHED_VIEW', view)
+    commit("ADD_CACHED_VIEW", view);
   },
 
   delView({ dispatch, state }, view) {
-    return new Promise(resolve => {
-      dispatch('delVisitedView', view)
-      dispatch('delCachedView', view)
+    return new Promise((resolve) => {
+      dispatch("delVisitedView", view);
+      dispatch("delCachedView", view);
       resolve({
         visitedViews: [...state.visitedViews],
-        cachedViews: [...state.cachedViews]
-      })
-    })
+        cachedViews: [...state.cachedViews],
+      });
+    });
   },
   delVisitedView({ commit, state }, view) {
-    return new Promise(resolve => {
-      commit('DEL_VISITED_VIEW', view)
-      resolve([...state.visitedViews])
-    })
+    return new Promise((resolve) => {
+      commit("DEL_VISITED_VIEW", view);
+      resolve([...state.visitedViews]);
+    });
   },
   delCachedView({ commit, state }, view) {
-    return new Promise(resolve => {
-      commit('DEL_CACHED_VIEW', view)
-      resolve([...state.cachedViews])
-    })
+    return new Promise((resolve) => {
+      commit("DEL_CACHED_VIEW", view);
+      resolve([...state.cachedViews]);
+    });
   },
 
   delOthersViews({ dispatch, state }, view) {
-    return new Promise(resolve => {
-      dispatch('delOthersVisitedViews', view)
-      dispatch('delOthersCachedViews', view)
+    return new Promise((resolve) => {
+      dispatch("delOthersVisitedViews", view);
+      dispatch("delOthersCachedViews", view);
       resolve({
         visitedViews: [...state.visitedViews],
-        cachedViews: [...state.cachedViews]
-      })
-    })
+        cachedViews: [...state.cachedViews],
+      });
+    });
   },
   delOthersVisitedViews({ commit, state }, view) {
-    return new Promise(resolve => {
-      commit('DEL_OTHERS_VISITED_VIEWS', view)
-      resolve([...state.visitedViews])
-    })
+    return new Promise((resolve) => {
+      commit("DEL_OTHERS_VISITED_VIEWS", view);
+      resolve([...state.visitedViews]);
+    });
   },
   delOthersCachedViews({ commit, state }, view) {
-    return new Promise(resolve => {
-      commit('DEL_OTHERS_CACHED_VIEWS', view)
-      resolve([...state.cachedViews])
-    })
+    return new Promise((resolve) => {
+      commit("DEL_OTHERS_CACHED_VIEWS", view);
+      resolve([...state.cachedViews]);
+    });
   },
 
   delAllViews({ dispatch, state }, view) {
-    return new Promise(resolve => {
-      dispatch('delAllVisitedViews', view)
-      dispatch('delAllCachedViews', view)
+    return new Promise((resolve) => {
+      dispatch("delAllVisitedViews", view);
+      dispatch("delAllCachedViews", view);
       resolve({
         visitedViews: [...state.visitedViews],
-        cachedViews: [...state.cachedViews]
-      })
-    })
+        cachedViews: [...state.cachedViews],
+      });
+    });
   },
   delAllVisitedViews({ commit, state }) {
-    return new Promise(resolve => {
-      commit('DEL_ALL_VISITED_VIEWS')
-      resolve([...state.visitedViews])
-    })
+    return new Promise((resolve) => {
+      commit("DEL_ALL_VISITED_VIEWS");
+      resolve([...state.visitedViews]);
+    });
   },
   delAllCachedViews({ commit, state }) {
-    return new Promise(resolve => {
-      commit('DEL_ALL_CACHED_VIEWS')
-      resolve([...state.cachedViews])
-    })
+    return new Promise((resolve) => {
+      commit("DEL_ALL_CACHED_VIEWS");
+      resolve([...state.cachedViews]);
+    });
   },
 
   updateVisitedView({ commit }, view) {
-    commit('UPDATE_VISITED_VIEW', view)
-  }
-}
+    commit("UPDATE_VISITED_VIEW", view);
+  },
+};
 
 export default {
   namespaced: true,
   state,
   mutations,
-  actions
-}
+  actions,
+};

+ 296 - 0
src/views/basic_data/stock/product_list.vue

@@ -0,0 +1,296 @@
+<template>
+  <div class="app-container">
+    <!-- 筛选条件 -->
+    <div class="screen-container">
+      <el-form
+        ref="screenForm"
+        :model="screenForm"
+        label-width="90px"
+        size="mini"
+        label-position="left"
+      >
+        <el-row :gutter="20">
+
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="产品编码" prop="materialNumber">
+              <el-input
+                v-model="screenForm.materialNumber"
+                placeholder="请输入产品编码"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="厂产品代码" prop="materialOldNumber">
+              <el-input
+                v-model="screenForm.materialOldNumber"
+                placeholder="请输入厂产品代码"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="产品名称" prop="materialName">
+              <el-input
+                v-model="screenForm.materialName"
+                placeholder="请输入产品名称"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="规格型号" prop="specification">
+              <el-input
+                v-model="screenForm.specification"
+                placeholder="请输入产品名称"
+              />
+            </el-form-item>
+          </el-col>
+
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="仓库" prop="correspondId">
+              <el-select v-model="screenForm.correspondId" style="width: 100%" placeholder="请选择仓库" size="mini" filterable clearable>
+                <el-option v-for="(item, index) in warehouseList" :key="index" :label="item.name" :value="item.id" />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="存货类别" >
+              <el-select v-model="screenForm.categoryId" style="width: 100%" placeholder="选择存货类别" filterable clearable>
+                <el-option v-for="item in categoryList" :key="item.name" :label="item.name" :value="item.id" />
+              </el-select>
+            </el-form-item>
+          </el-col>
+
+          <el-col :xs="24" :sm="12" :lg="12" class="tr">
+            <el-form-item>
+              <el-button @click="resetScreenForm">清空</el-button>
+              <el-button type="primary" @click="submitScreenForm">搜索</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+    <div class="mymain-container">
+      <div class="btn-group clearfix">
+        <div >
+          <ExportButton
+            :ex-url="'/stock/manager/exportStockToDay'"
+            :ex-params="exParams"
+          />
+        </div>
+      </div>
+      <div class="table">
+        <el-table
+          v-loading="listLoading"
+          :data="dataList"
+          element-loading-text="Loading"
+          border
+          fit
+          highlight-current-row
+          stripe
+        >
+          <el-table-column
+            align="left"
+            label="仓库"
+            prop="correspondName"
+            min-width="100"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="left"
+            label="产品编码"
+            prop="materialNumber"
+            min-width="150"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              <CopyButton :copy-text="scope.row.materialNumber" />
+              <span>{{ scope.row.materialNumber }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="left"
+            label="厂产品代码"
+            prop="materialOldNumber"
+            min-width="150"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              <CopyButton :copy-text="scope.row.materialOldNumber" />
+              <span>{{ scope.row.materialOldNumber }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="left"
+            label="产品名称"
+            prop="materialName"
+            min-width="200"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              <CopyButton :copy-text="scope.row.materialName" />
+              <span>{{ scope.row.materialName }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="left"
+            label="规格型号"
+            prop="specification"
+            min-width="300"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              <CopyButton :copy-text="scope.row.specification" />
+              <span>{{ scope.row.specification }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="right"
+            label="可用数量"
+            prop="stockAdequate"
+            min-width="100"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="right"
+            label="开单未提数量"
+            prop="num"
+            min-width="100"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="right"
+            label="结存数量"
+            prop="balanceNumber"
+            min-width="100"
+            show-overflow-tooltip
+          />
+        </el-table>
+
+      </div>
+    </div>
+    <div class="pagination clearfix">
+      <div class="fr">
+        <el-pagination
+          :current-page="currentPage"
+          :page-sizes="[10, 20, 30, 50]"
+          :page-size="10"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="listTotal"
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+        />
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { getListStockToDay } from '@/api/stock'
+import { getCategoryList } from '@/api/common'
+import { getWarehouseList } from '@/api/supply/apply'
+
+export default {
+  data() {
+    return {
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      dataList: null, // 列表数据
+      listLoading: false, // 列表加载loading
+      screenForm: {
+        categoryId: '',
+        correspondId: '',
+        materialName: '',
+        materialNumber: '',
+        materialOldNumber: '',
+        specification: ''
+      },
+      typeList: [],
+      warehouseList: [],
+      categoryList: []
+    }
+  },
+
+  computed: {
+    exParams() {
+      return {
+        categoryId: this.screenForm.categoryId,
+        correspondId: this.screenForm.correspondId,
+        materialName: this.screenForm.materialName,
+        materialNumber: this.screenForm.materialNumber,
+        materialOldNumber: this.screenForm.materialOldNumber,
+        specification: this.screenForm.specification
+      }
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+
+    getList() {
+      const params = {
+        pageNum: this.currentPage,
+        pageSize: this.pageSize,
+        categoryId: this.screenForm.categoryId,
+        correspondId: this.screenForm.correspondId,
+        materialName: this.screenForm.materialName,
+        materialNumber: this.screenForm.materialNumber,
+        materialOldNumber: this.screenForm.materialOldNumber,
+        specification: this.screenForm.specification
+      }
+      this.listLoading = true
+      getListStockToDay(params).then(res => {
+        this.dataList = res.data.records
+        this.listTotal = res.data.total
+        this.listLoading = false
+      })
+      this.getWarehouseList()
+      this.getCategoryList()
+    },
+    // 获取仓库列表
+    getWarehouseList() {
+      getWarehouseList({
+        pageNum: 1,
+        pageSize: -1
+      }).then((res) => {
+        this.warehouseList = res.data.records
+      })
+    },
+
+    // 获取存货类别列表
+    getCategoryList() {
+      getCategoryList({
+        pageNum: 1,
+        pageSize: -1
+      }).then(res => {
+        this.categoryList = res.data.records
+      })
+    },
+    // 提交筛选表单
+    submitScreenForm() {
+      this.currentPage = 1
+      this.getList()
+    },
+
+    // 重置筛选表单
+    resetScreenForm() {
+      this.$refs.screenForm.resetFields()
+      this.currentPage = 1
+      this.getList()
+    },
+
+    // 更改每页数量
+    handleSizeChange(val) {
+      this.pageSize = val
+      this.currentPage = 1
+      this.getList()
+    },
+
+    // 更改当前页
+    handleCurrentChange(val) {
+      this.currentPage = val
+      this.getList()
+    }
+  }
+}
+</script>

+ 4 - 2
src/views/deposit_commerce/refund_list.vue

@@ -214,9 +214,11 @@
                 <span>{{scope.row.customerName}}</span>
               </template>
             </el-table-column> -->
-            <el-table-column align="right" label="特价编号" prop="specification" min-width="160" show-overflow-tooltip>
+            <el-table-column align="right" label="规格型号" prop="specification" min-width="160" show-overflow-tooltip>
             </el-table-column>
-            <el-table-column align="right" label="厂编号" prop="refFactoryNo" min-width="160" show-overflow-tooltip>
+            <el-table-column align="right" label="特价编号" prop="specialNo" min-width="160" show-overflow-tooltip>
+            </el-table-column>
+            <el-table-column align="right" label="厂编号" prop="factoryNo" min-width="160" show-overflow-tooltip>
             </el-table-column>
             <el-table-column align="right" label="安装日期" prop="installDate" min-width="160" show-overflow-tooltip>
             </el-table-column>

+ 4 - 2
src/views/deposit_home/refund_list.vue

@@ -241,9 +241,11 @@
                 {{ scope.row.depositAmount | numToFixed }}
               </template>
             </el-table-column>
-            <el-table-column align="right" label="特价编号" prop="specification" min-width="160" show-overflow-tooltip>
+            <el-table-column align="right" label="规格型号" prop="specification" min-width="160" show-overflow-tooltip>
             </el-table-column>
-            <el-table-column align="right" label="厂编号" prop="refFactoryNo" min-width="160" show-overflow-tooltip>
+            <el-table-column align="right" label="特价编号" prop="specialNo" min-width="160" show-overflow-tooltip>
+            </el-table-column>
+            <el-table-column align="right" label="厂编号" prop="factoryNo" min-width="160" show-overflow-tooltip>
             </el-table-column>
             <el-table-column align="right" label="安装日期" prop="installDate" min-width="160" show-overflow-tooltip>
             </el-table-column>

+ 258 - 0
src/views/finance/details/loan_list.vue

@@ -0,0 +1,258 @@
+<template>
+  <div class="app-container">
+    <div v-if="showReconciliation">
+      <!-- 筛选条件 -->
+      <div>
+        <el-form ref="searchForm" :model="searchForm" label-width="100px" size="mini" label-position="left">
+          <el-row :gutter="20">
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="钱包" prop="type">
+                <el-select v-model="searchForm.type" class="selectStyle" placeholder="请选择" filterable clearable>
+                  <el-option v-for="(v, i) in walletType" :key="i" :label="v.label" :value="v.value" />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="月份" prop="month">
+              <el-date-picker
+                style="width: 100%"
+                v-model="searchForm.month"
+                type="month"
+                placeholder="选择月">
+              </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="对账状态" prop="isReconciliation">
+                <el-select v-model="searchForm.isReconciliation" class="selectStyle" placeholder="请选择对账状态" filterable clearable>
+                  <el-option v-for="(v, i) in statusList" :key="i" :label="v.label" :value="v.value" />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="" class="fr">
+                <el-button size="mini" @click="clearFn">清空</el-button>
+                <el-button size="mini" type="primary" @click="searchFn">搜索</el-button>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </div>
+      <!-- 按钮 -->
+      <div class="btn-group clearfix">
+        <div class="fl">
+          <el-button :disabled="dataList.length == 0" type="primary" size="mini" @click="reconciliationFn">一键对账</el-button>
+<!--          <el-button type="primary" size="mini" @click="recordFn">记录</el-button>-->
+        </div>
+<!--        <div class="fr">-->
+<!--          <ExportButton :ex-url="'/finance/standing/book/export'" :ex-params="exParams" />-->
+<!--        </div>-->
+      </div>
+      <!-- 列表 -->
+      <div class="mymain-container">
+        <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="序号" type="index" width="80" show-overflow-tooltip />-->
+            <el-table-column align="left" label="月份" prop="month" min-width="100" show-overflow-tooltip />
+            <el-table-column align="left" label="对账状态" prop="isReconciliation" min-width="100" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <el-tag v-if="scope.row.isReconciliation == false" size="mini" type="danger">未对账</el-tag>
+              </template>
+            </el-table-column>
+            <el-table-column align="left" label="经销商编码" prop="customerCode" min-width="100" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <CopyButton :copy-text="scope.row.customerCode" />
+                <span>{{ scope.row.customerCode }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column align="left" label="经销商名称" prop="customerName" min-width="260" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <CopyButton :copy-text="scope.row.customerName" />
+                <span>{{ scope.row.customerName }}</span>
+              </template>
+            </el-table-column>
+
+            <el-table-column align="left" label="预付货款" prop="preFee" min-width="160" show-overflow-tooltip />
+            <el-table-column align="left" label="订单占款" prop="orderFee" min-width="160" show-overflow-tooltip />
+            <el-table-column align="left" label="支付货款" prop="payFee" min-width="160" show-overflow-tooltip>
+              <template slot-scope="scope">
+              {{ scope.row.billNo }}
+              </template>
+            </el-table-column>
+            <el-table-column align="left" label="押金" prop="depositFee" min-width="160" show-overflow-tooltip />
+            <el-table-column align="left" label="工程押金" prop="projectFee" min-width="160" show-overflow-tooltip />
+          </el-table>
+        </div>
+        <!-- 分页 -->
+        <div class="fr">
+          <el-pagination :current-page="currentPage" :page-sizes="[10, 20, 30, 50]" :page-size="10" layout="total, sizes, prev, pager, next, jumper" :total="listTotal" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
+        </div>
+      </div>
+    </div>
+    <AccountListDetail v-else />
+  </div>
+</template>
+
+<script>
+import {
+  getCustomerList,
+  getFeconciliateList,
+  getFinanceStandingBookCheck,
+  getWalletCustomerList
+} from '@/api/finance/account_list'
+import AccountListDetail from '../components/account_list-detail'
+
+export default {
+  components: {
+    AccountListDetail
+  },
+  data() {
+    return {
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      dataList: [], // 列表数据
+      searchForm: {
+        customerId: '',
+        customerWalletId: '',
+        billNo: '',
+        startTime: '',
+        endTime: '',
+        type:null,
+        month:'',
+        isReconciliation:null,
+      }, // 搜索表单
+      listLoading: false, // 列表加载loading
+      showReconciliation: true,
+      statusList: [
+        {
+          value:true,
+          label:'是'
+        },
+        {
+          value:false,
+          label:'否'
+        }
+      ],
+      walletType: [
+        {
+          value:'COMMONLY',
+          label:'普通钱包'
+        },
+        {
+          value:'REBATE',
+          label:'返利钱包'
+        }
+      ]
+    }
+  },
+  computed: {
+    exParams() {
+      return {
+        ...this.searchForm,
+        pageSize: this.pageSize,
+        pageNum: this.currentPage,
+        isReconciliation: false
+      }
+    }
+  },
+  created() {
+    this.getDataList({
+      pageSize: this.pageSize,
+      pageNum: this.currentPage,
+      ...this.searchForm,
+    })
+    this.getCustomerDataList({
+      pageSize: -1,
+      pageNum: 1
+    })
+  },
+  methods: {
+    // 清空
+    clearFn() {
+      this.$refs.searchForm.resetFields()
+      this.currentPage = 1;
+      this.getDataList({
+        ...this.searchForm,
+        pageSize: this.pageSize,
+        pageNum: this.currentPage,
+      })
+    },
+    // 搜索
+    searchFn() {
+      this.getDataList({
+        ...this.searchForm,
+        pageSize: this.pageSize,
+        pageNum: this.currentPage,
+
+      })
+    },
+    // 改变经销商
+    async changeFn(v) {
+      this.searchForm.customerWalletId = ''
+      const res = await getWalletCustomerList({ customerId: v })
+      this.walletList = res.data
+    },
+    // 获取经销商数据
+    async getCustomerDataList(data) {
+      const res = await getCustomerList(data)
+      this.customerList = res.data.records
+    },
+    // 记录
+    recordFn() {
+      this.showReconciliation = false
+    },
+    // 更改每页数量
+    handleSizeChange(val) {
+      this.pageSize = val
+      this.currentPage = 1
+      this.getDataList({
+        pageNum: this.currentPage,
+        pageSize: this.pageSize,
+        isReconciliation: false
+      })
+    },
+    // 更改当前页
+    handleCurrentChange(val) {
+      this.currentPage = val
+      this.getDataList({
+        pageNum: this.currentPage,
+        pageSize: this.pageSize,
+        isReconciliation: false
+      })
+    },
+    // 获取列表
+    async getDataList(data) {
+      const res = await getFeconciliateList(data)
+      res.data.records.forEach((item) => {
+        item.sums1 = []
+        item.sums2 = ['amount']
+      })
+      this.dataList = res.data.records
+      this.listTotal = res.data.total
+    },
+    // 一键对账
+    async reconciliationFn() {
+      const res = await getFeconciliateList({
+        pageSize: -1,
+        pageNum: 1
+      })
+      const arr = res.data.records
+      const ids = arr.map((v) => v.id)
+      console.log(ids)
+
+      await getFinanceStandingBookCheck({ ids: ids.toString() })
+      this.$message.success('对账成功')
+    },
+    seeFN() {
+      this.showDetail = false
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.selectStyle {
+  width: 100%;
+}
+</style>

+ 1 - 1
src/views/sales_policy/components/AddPolicy.vue

@@ -166,7 +166,7 @@
               label="物料编码"
               align="left"
 
-              min-width="150"
+              min-width="200"
             >
               <template slot-scope="scope">
  <CopyButton :copyText="scope.row.materialNumber" />

+ 1 - 1
src/views/sales_policy/components/editPolicy.vue

@@ -154,7 +154,7 @@
             />
             <el-table-column
 
-              min-width="150"
+              min-width="200"
               prop="materialNumber"
               label="物料编码"
               align="left"

+ 8 - 1
src/views/setting/other.vue

@@ -326,15 +326,22 @@ export default {
         eigth: "POWER_CATEGORY",
       };
       getDictList({ sysDictEnum: MAP[type] }).then((res) => {
+
         let data = res.data.map((item) => {
+
           return {
             sysDictId: item.sysDictId,
             dictValue: item.dictValue,
+            dictType:item.dictType,
+            dictCode:item.dictCode
           };
         });
         if (type != "fourth") {
+
           this[type + "Form"].input1 = data[0];
+             console.log(777);
         } else {
+
           this[type + "Form"].input1 = data[0];
           this[type + "Form"].input2 = data[1];
           this[type + "Form"].input3 = data[2];
@@ -391,4 +398,4 @@ export default {
   margin-bottom: 0;
   width: 100%;
 }
-</style>
+</style>

+ 11 - 4
src/views/supply/deliver/components/sum_print.vue

@@ -7,14 +7,14 @@
     </div> -->
 
     <div id="printMe">
-      
+
       <PrintCommon :detailData="detailData" :company="company" v-if="currentType === 0" />
       <PrintFoshan :detailData="detailData" :company="company" v-if="currentType === 1" />
       <PrintGuangzhou :detailData="detailData" :company="company" v-if="currentType === 2" />
       <PrintShaoguan :detailData="detailData" :company="company" v-if="currentType === 3" />
 
     </div>
-    
+
     <div class="page-footer">
       <div class="footer">
         <el-button  type="primary" icon="el-icon-printer" v-print="printObj">打 印</el-button>
@@ -110,12 +110,19 @@ export default {
 }
 </script>
 
+<style>
+  html,body{
+    height: auto !important;
+  }
+</style>
+
 <style scoped lang="scss">
+
   .detail-container {
     width: 100%;
-    height: 100%;
+
   }
   .top-container {
     margin-bottom: 20px;
   }
-</style>
+</style>

+ 32 - 15
src/views/supply/deliver/sum_list.vue

@@ -68,6 +68,11 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="发货单号" prop="mainOrderId">
+                <el-input v-model="screenForm.mainOrderId" placeholder="请输入发货单号"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
               <el-form-item label="存货类别" prop="type">
                 <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>
@@ -86,8 +91,8 @@
                 </el-select>
               </el-form-item>
             </el-col>
-            
-            <el-col :xs="24" :sm="12" :lg="6" class="tr">
+
+            <el-col :xs="24" :sm="24" :lg="24" class="tr">
               <el-form-item label="">
                 <el-button @click="resetScreenForm">清空</el-button>
                 <el-button type="primary" @click="submitScreenForm">搜索</el-button>
@@ -107,16 +112,16 @@
           </div>
         </div>
         <div class="table">
-          <el-table 
+          <el-table
             ref="table"
-            v-loading="listLoading" 
-            :data="dataList" 
-            element-loading-text="Loading" 
-            border 
-            fit 
-            highlight-current-row 
+            v-loading="listLoading"
+            :data="dataList"
+            element-loading-text="Loading"
+            border
+            fit
+            highlight-current-row
             stripe
-            @select="handleSelect" 
+            @select="handleSelect"
             @select-all="handleSelectAll"
             show-summary
             :summary-method="$getSummaries">
@@ -179,12 +184,22 @@
             </el-table-column>
             <el-table-column align="right" label="发货折扣金额" prop="discAmount" min-width="110" show-overflow-tooltip>
               <template slot-scope="scope">
-                {{scope.row.discAmount | numToFixed}}
+                {{scope.row.totalDiscAmount | numToFixed}}
               </template>
             </el-table-column>
             <el-table-column align="right" label="折扣额合计" prop="totalDiscAmount" min-width="100" show-overflow-tooltip>
               <template slot-scope="scope">
-                {{scope.row.totalDiscAmount | numToFixed}}
+                {{(scope.row.totalDiscAmount + scope.row.payRebateAmount) | numToFixed}}
+              </template>
+            </el-table-column>
+               <el-table-column align="right" label="含税单价" prop="singlePayPrice" min-width="100" show-overflow-tooltip>
+              <template slot-scope="scope">
+                {{scope.row.singlePayPrice | numToFixed}}
+              </template>
+            </el-table-column>
+              <el-table-column align="right" label="含税总额" prop="singlePayPrice" 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="refundableQty" min-width="100" show-overflow-tooltip></el-table-column>
@@ -222,9 +237,9 @@
 </template>
 
 <script>
-import { getSumList } from "@/api/supply/deliver";
+import { getSumList } from '@/api/supply/deliver'
 import { getCategoryList, getSalesmanList } from '@/api/common'
-import SumPrint from "@/views/supply/deliver/components/sum_print";
+import SumPrint from '@/views/supply/deliver/components/sum_print'
 
 export default {
   components: {
@@ -249,6 +264,7 @@ export default {
         orderNum: '',
         type: '',
         salesMan: '',
+        mainOrderId:''
       },
       categoryList: [],
       salesmanList: [],
@@ -328,6 +344,7 @@ export default {
         id: this.screenForm.orderNum,
         categoryName: this.screenForm.type,
         serviceId: this.screenForm.salesMan,
+        mainOrderId:this.screenForm.mainOrderId
       };
       getSumList(params).then((res) => {
         res.data.records.forEach(item => {
@@ -392,7 +409,7 @@ export default {
       this.isShowPrint = false;
     },
 
-    
+
   }
 }
 </script>

+ 4 - 3
src/views/supply/implement/implement_list.vue

@@ -156,7 +156,7 @@
                 <span>{{scope.row.specification}}</span>
               </template>
             </el-table-column>
-            <el-table-column align="right" label="钱包" prop="walletName" min-width="120" show-overflow-tooltip></el-table-column>
+            <el-table-column align="left" label="钱包" prop="walletName" min-width="250" show-overflow-tooltip></el-table-column>
             <el-table-column align="right" label="订单未发货数量" prop="refundableQty" min-width="120" show-overflow-tooltip></el-table-column>
             <el-table-column align="right" label="总数量" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
             <el-table-column align="right" label="退订数量" prop="retiredQty" min-width="100" show-overflow-tooltip></el-table-column>
@@ -215,8 +215,9 @@
 </template>
 
 <script>
-import { getList } from "@/api/supply/implement";
-import { getCategoryList } from "@/api/common"
+import { getList } from '@/api/supply/implement'
+import { getCategoryList } from '@/api/common'
+
 let that
 export default {
   filters: {

+ 12 - 1
src/views/supply/retail/components/retail_form.vue

@@ -258,6 +258,7 @@
             <el-table-column align="center" label="产品名称" prop="name" min-width="160" show-overflow-tooltip></el-table-column>
             <el-table-column align="center" label="产品型号" prop="specification" min-width="160" show-overflow-tooltip></el-table-column>
             <el-table-column align="center" label="产品价格" prop="batchPrice" min-width="80" show-overflow-tooltip></el-table-column>
+            <el-table-column align="center" label="销售类型" prop="saleName" min-width="80" show-overflow-tooltip></el-table-column>
           </el-table>
           <div class="pagination clearfix" style="margin-top: 10px">
             <div class="fr">
@@ -286,6 +287,8 @@
             <el-table-column align="center" label="产品名称" prop="name" min-width="160" show-overflow-tooltip></el-table-column>
             <el-table-column align="center" label="产品型号" prop="specification" min-width="160" show-overflow-tooltip></el-table-column>
             <el-table-column align="center" label="产品价格" prop="batchPrice" min-width="80" show-overflow-tooltip></el-table-column>
+            <el-table-column align="center" label="销售类型" prop="saleName" min-width="80" show-overflow-tooltip></el-table-column>
+
           </el-table>
         </div>
       </div>
@@ -301,7 +304,15 @@
 </template>
 
 <script>
-import { getDetail, addData, editData, getSalesTypeList, getGoodsList, getWarehouseList, checkStock } from "@/api/supply/retail";
+import {
+  addData,
+  checkStock,
+  editData,
+  getDetail,
+  getGoodsList,
+  getSalesTypeList,
+  getWarehouseList
+} from '@/api/supply/retail'
 import { getDictList, getSalesmanList } from '@/api/common'
 import { findElem } from '@/utils/util'
 

+ 12 - 8
src/views/supply/sales/components/sales_return_form.vue

@@ -100,7 +100,7 @@
         </el-table-column>
       </el-table>
     </div>
-    
+
     <div class="page-footer">
       <div class="footer">
         <el-button type="primary" @click="clickSubmitForm('SAVE')">保 存</el-button>
@@ -172,7 +172,11 @@
           <el-table-column align="center" type="selection" width="55" :selectable='checkboxSelect'></el-table-column>
           <el-table-column align="left" label="销售出库单" prop="id" min-width="160" show-overflow-tooltip></el-table-column>
           <el-table-column align="left" label="发货申请单号" prop="orderNo" min-width="120" show-overflow-tooltip></el-table-column>
-          <el-table-column align="left" label="订单号" prop="mainOrderId" min-width="120" show-overflow-tooltip></el-table-column>
+          <el-table-column align="left" label="订单号" prop="mainOrderId" min-width="120" show-overflow-tooltip>、
+            <template slot-scope="scope">
+              {{ (scope.row.orderType == 'TRADE' || scope.row.orderType == 'HOME') ? scope.row.enginOrderNo : scope.row.mainOrderId }}
+            </template>
+          </el-table-column>
           <el-table-column align="left" label="经销商" prop="customerName" min-width="250" show-overflow-tooltip></el-table-column>
           <el-table-column align="left" label="仓库" prop="correspondName" min-width="100" show-overflow-tooltip></el-table-column>
           <el-table-column align="left" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>
@@ -191,7 +195,7 @@
           </div>
         </div>
       </div>
-      
+
       <span slot="footer" class="dialog-footer">
         <el-button @click="closeDialog">取 消</el-button>
         <el-button type="primary" @click="submitAddGoods">确 定</el-button>
@@ -202,8 +206,8 @@
 </template>
 
 <script>
-import { addReturn, getSalesGoodsList, getWarehouseList, getDealerList } from "@/api/supply/sales";
-import { getDictList, getCategoryList } from '@/api/common'
+import { addReturn, getDealerList, getSalesGoodsList, getWarehouseList } from '@/api/supply/sales'
+import { getCategoryList, getDictList } from '@/api/common'
 import fileUpload from '@/components/Common/file-upload.vue'
 
 export default {
@@ -247,7 +251,7 @@ export default {
       // typeList: [],
       stockList: [],
       categoryList: [],
-      
+
       tableGoodsList: [],
       tableSelection: [],
     }
@@ -335,7 +339,7 @@ export default {
         this.categoryList = res.data.records;
       })
     },
-    
+
     // 库存字段
     stockFilter(item, type) {
       let STOCK_ORDER_INVOICE = this.stockList.find(o => o.dictCode == 'STOCK_ORDER_INVOICE').dictValue;
@@ -530,4 +534,4 @@ export default {
     width: 100%;
     height: 100%;
   }
-</style>
+</style>

+ 17 - 17
src/views/supply/sales/sales_list.vue

@@ -66,7 +66,7 @@
                 </el-date-picker>
               </el-form-item>
             </el-col>
-            
+
             <el-col :xs="24" :sm="12" :lg="18" class="tr">
               <el-form-item label="">
                 <el-button @click="resetScreenForm">清空</el-button>
@@ -90,11 +90,11 @@
         <div class="table">
           <el-table
             v-loading="listLoading"
-            :data="dataList" 
-            element-loading-text="Loading" 
-            border 
-            fit 
-            highlight-current-row 
+            :data="dataList"
+            element-loading-text="Loading"
+            border
+            fit
+            highlight-current-row
             stripe
             @selection-change="handleSelectionChange"
             show-summary
@@ -125,7 +125,7 @@
             <el-table-column align="left" label="订单号" prop="orderNo" min-width="140" show-overflow-tooltip>
               <template slot-scope="scope">
                 <CopyButton :copyText="scope.row.orderType === 'TRADE' ? scope.row.enginOrderNo : scope.row.mainOrderId" />
-                <span>{{scope.row.orderType === 'TRADE' ? scope.row.enginOrderNo : scope.row.mainOrderId}}</span>
+                <span>{{scope.row.orderType === 'TRADE' || scope.row.orderType === 'HMOE' ? scope.row.enginOrderNo : scope.row.mainOrderId}}</span>
               </template>
             </el-table-column>
             <el-table-column align="left" label="仓库" prop="correspondName" min-width="100" show-overflow-tooltip></el-table-column>
@@ -186,10 +186,10 @@
               <template slot-scope="scope">
                 <el-button type="text" @click="toDetail(scope.row)">详情</el-button>
                 <el-button type="text" @click="toExamine(scope.row)" v-if="$checkBtnRole('examine', $route.meta.roles) && scope.row.examineStatus === 'WAIT'">审批</el-button>
-                <el-popconfirm 
-                  style="margin-left: 10px;" 
-                  title="确定弃审吗?" 
-                  @onConfirm="handleAbandon(scope.row.id)" 
+                <el-popconfirm
+                  style="margin-left: 10px;"
+                  title="确定弃审吗?"
+                  @onConfirm="handleAbandon(scope.row.id)"
                   v-if="$checkBtnRole('examine', $route.meta.roles) && scope.row.examineStatus === 'OK'" >
                   <el-button slot="reference" type="text">弃审</el-button>
                 </el-popconfirm>
@@ -214,7 +214,7 @@
     </div>
 
     <ExamineDialog :isShow.sync="isShowExamineDialog" :examineForm.sync="examineForm" />
-    
+
     <SalesDetail :listItem="queryItem" v-if="isShowDetail" @backListFormDetail="backList" />
     <SalesExamine :listItem="queryItem" v-if="isShowExamine" @backListFormExamine="backList" />
     <SalesReturnForm :listItem="queryItem" v-if="isShowReturnForm" @backListFormDetail="backList" />
@@ -223,11 +223,11 @@
 </template>
 
 <script>
-import { getList, examineJudge, examineBatch, abandonData } from "@/api/supply/sales";
-import SalesDetail from "@/views/supply/sales/components/sales_detail";
-import SalesExamine from "@/views/supply/sales/components/sales_examine";
-import SalesReturnForm from "@/views/supply/sales/components/sales_return_form";
-import ExamineDialog from "@/components/Common/examine-dialog";
+import { abandonData, examineBatch, examineJudge, getList } from '@/api/supply/sales'
+import SalesDetail from '@/views/supply/sales/components/sales_detail'
+import SalesExamine from '@/views/supply/sales/components/sales_examine'
+import SalesReturnForm from '@/views/supply/sales/components/sales_return_form'
+import ExamineDialog from '@/components/Common/examine-dialog'
 
 let that
 export default {