Browse Source

feature:家用工程,商用工程

chenqilong 2 years ago
parent
commit
9301580771

+ 20 - 1
src/api/supply/deliver.js

@@ -1,4 +1,4 @@
-import request from '@/utils/request'
+import request, { postBlob, handleImport, getBlob } from '@/utils/request'
 
 
 // 获取列表 - 零售发货单
 // 获取列表 - 零售发货单
 export function getDeliverList(params) {
 export function getDeliverList(params) {
@@ -36,6 +36,25 @@ export function getPasswordRecord(params) {
   })
   })
 }
 }
 
 
+// 工程申请发货单-列表V2
+export function invoiceListProjectV2(data) {
+  return request({
+    url: `/invoice/listProjectV2?moduleId=${data.moduleId}`,
+    method: 'post',
+    data
+  })
+}
+
+//工程申请发货单-列表V2导出
+export function invoiceListProjectV2Export(data, name) {
+  return postBlob({
+    url: '/invoice/listProjectV2/export',
+    method: 'post',
+    data,
+    name
+  })
+}
+
 // 获取列表 - 工程发货单
 // 获取列表 - 工程发货单
 export function getEnginList(params) {
 export function getEnginList(params) {
   return request({
   return request({

+ 38 - 0
src/api/supply/engin.js

@@ -172,6 +172,44 @@ export function overEngin(params) {
   })
   })
 }
 }
 
 
+// 家用工程订单-列表
+export function v2EnginOrderHomeList(data) {
+  return request({
+    url: `/v2/engin-order/home/list?moduleId=${data.moduleId}`,
+    method: 'post',
+    data
+  })
+}
+
+//家用工程订单-导出
+export function v2EnginOrderHomeListExport(data, name) {
+  return postBlob({
+    url: '/v2/engin-order/home/list/export',
+    method: 'post',
+    data,
+    name
+  })
+}
+
+// 商用工程订单-列表
+export function v2EnginOrderTradeList(data) {
+  return request({
+    url: `/v2/engin-order/trade/list?moduleId=${data.moduleId}`,
+    method: 'post',
+    data
+  })
+}
+
+//商用工程订单-导出
+export function v2EnginOrderTradeListExport(data, name) {
+  return postBlob({
+    url: '/v2/engin-order/trade/list/export',
+    method: 'post',
+    data,
+    name
+  })
+}
+
 // 工程订单 - 获取列表
 // 工程订单 - 获取列表
 export function getOrderList(params) {
 export function getOrderList(params) {
   return request({
   return request({

+ 10 - 10
src/views/supply/deliver/home_list.vue

@@ -50,7 +50,7 @@
                     <el-date-picker
                     <el-date-picker
                       v-model="screenForm.date"
                       v-model="screenForm.date"
                       type="datetimerange"
                       type="datetimerange"
-:default-time="['00:00:00','23:59:59']"
+                      :default-time="['00:00:00', '23:59:59']"
                       range-separator="至"
                       range-separator="至"
                       value-format="yyyy-MM-dd HH:mm:ss"
                       value-format="yyyy-MM-dd HH:mm:ss"
                       start-placeholder="开始日期"
                       start-placeholder="开始日期"
@@ -240,13 +240,7 @@
                 {{ scope.row.takeDeposit ? '不扣' : '扣' }}
                 {{ scope.row.takeDeposit ? '不扣' : '扣' }}
               </template>
               </template>
             </el-table-column>
             </el-table-column>
-            <el-table-column
-              align="left"
-              label="第几申报"
-              prop="refDeclareNo"
-              min-width="100"
-              show-overflow-tooltip
-            />
+            <el-table-column align="left" label="第几申报" prop="refDeclareNo" min-width="100" show-overflow-tooltip />
             <el-table-column align="left" label="备注信息" prop="headerRemark" min-width="200" show-overflow-tooltip />
             <el-table-column align="left" label="备注信息" prop="headerRemark" min-width="200" show-overflow-tooltip />
             <el-table-column
             <el-table-column
               align="left"
               align="left"
@@ -379,7 +373,13 @@
 </template>
 </template>
 
 
 <script>
 <script>
-import { getEnginList, getPassword, getPasswordRecord } from '@/api/supply/deliver'
+import {
+  getEnginList,
+  getPassword,
+  getPasswordRecord,
+  invoiceListProjectV2,
+  invoiceListProjectV2Export
+} from '@/api/supply/deliver'
 import { getCategoryList, getSalesmanList } from '@/api/common'
 import { getCategoryList, getSalesmanList } from '@/api/common'
 import HomeDetail from '@/views/supply/deliver/components/home_detail'
 import HomeDetail from '@/views/supply/deliver/components/home_detail'
 
 
@@ -520,7 +520,7 @@ export default {
 
 
     // 重置筛选表单
     // 重置筛选表单
     resetScreenForm() {
     resetScreenForm() {
-        this.$refs.screenForm.resetFields()
+      this.$refs.screenForm.resetFields()
       this.currentPage = 1
       this.currentPage = 1
       this.getList()
       this.getList()
     },
     },

+ 251 - 550
src/views/supply/engin/commerce_list.vue

@@ -1,516 +1,39 @@
 <template>
 <template>
-  <div class="app-container">
-    <div v-show="!isShowDetail && !isShowForm && !isShowExamine && !isShowReturn">
-      <!-- 筛选条件 -->
-      <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 #left_btn>
-            <el-radio-group size="mini" v-model="screenForm.status" @change="getList()">
-              <el-radio-button label="">全部</el-radio-button>
-              <el-radio-button v-for="(item, index) in statusList" :key="index" :label="item.value">{{
-                item.label
-              }}</el-radio-button>
-            </el-radio-group>
-          </template>
-          <template #search>
-            <el-form ref="screenForm" :model="screenForm" 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="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="enginNum">
-                    <el-input v-model="screenForm.enginNum" placeholder="请输入工程编号"></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="工程登录编号" prop="loginNum">
-                    <el-input v-model="screenForm.loginNum" placeholder="请输入工程登录编号"></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="项目名称" prop="enginName">
-                    <el-input v-model="screenForm.enginName" placeholder="请输入项目名称"></el-input>
-                  </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="dealer">
-                    <el-input v-model="screenForm.dealer" placeholder="请输入经销商"></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="制表人" prop="createMan">
-                    <el-input v-model="screenForm.createMan" placeholder="请输入制表人"></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="审核人" prop="examineMan">
-                    <el-input v-model="screenForm.examineMan" placeholder="请输入审核人"></el-input>
-                  </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-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 label="是否直调" prop="isDirectTransfer">
-                    <el-select v-model="screenForm.isDirectTransfer" placeholder="选择是否直" style="width: 100%">
-                      <el-option :value="null" label="默认"></el-option>
-                      <el-option v-for="item in transfer" :key="item.value" :label="item.label" :value="item.value">
-                      </el-option>
-                    </el-select>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="钱包" prop="customerWalletId">
-                    <el-select
-                      v-model="screenForm.customerWalletId"
-                      placeholder="选择钱包"
-                      clearable
-                      filterable
-                      style="width: 100%"
-                    >
-                      <el-option v-for="item in NoRebateWalletList" :key="item.id" :label="item.name" :value="item.id">
-                      </el-option>
-                    </el-select>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="销售类型" prop="saleTypeId">
-                    <el-select
-                      v-model="screenForm.saleTypeId"
-                      placeholder="选择销售类型"
-                      clearable
-                      filterable
-                      style="width: 100%"
-                    >
-                      <el-option v-for="item in typeList" :key="item.id" :label="item.saleName" :value="item.id">
-                      </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="fl">
-            <el-button
-              size="mini"
-              type="primary"
-              icon="el-icon-plus"
-              @click="toForm()"
-              v-if="$checkBtnRole('add', $route.meta.roles)"
-              >新增</el-button
-            >
-            <el-button
-              size="mini"
-              type="danger"
-              icon="el-icon-minus"
-              :disabled="multipleSelection.length < 1"
-              @click="batchDelete()"
-              v-if="$checkBtnRole('del', $route.meta.roles)"
-              >批量删除</el-button
-            >
-          </div>
-          <div class="fr">
-            <ExportButton :exUrl="'engin-order/export'" :exParams="exParams" />
-          </div>
-        </div>
-        <div class="table">
-          <el-table
-            v-loading="listLoading"
-            :data="dataList"
-            element-loading-text="Loading"
-            border
-            fit
-            highlight-current-row
-            stripe
-            @selection-change="handleSelectionChange"
-            show-summary
-            :summary-method="$getSummaries"
-          >
-            <el-table-column align="center" type="selection" width="55"></el-table-column>
-            <el-table-column align="left" label="审核状态" prop="examineStatus" min-width="100" show-overflow-tooltip>
-              <template slot-scope="scope">
-                {{ scope.row.examineStatus | statusFilter }}
-              </template>
-            </el-table-column>
-            <el-table-column align="left" label="工程订单号" prop="enginOrderNo" min-width="140" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.enginOrderNo" />
-                <span>{{ scope.row.enginOrderNo }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column align="left" label="订单日期" prop="orderDate" min-width="120" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <div>
-                  <span>{{ scope.row.orderDate | dateToDayFilter }}</span>
-                  <el-button
-                    type="text"
-                    icon="el-icon-edit"
-                    style="padding: 0; margin-left: 6px"
-                    @click="editDate(scope.row)"
-                    v-if="$checkBtnRole('date', $route.meta.roles) && !isCustomer && scope.row.examineStatus !== 'SAVE'"
-                  ></el-button>
-                </div>
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="left"
-              label="工程编号"
-              prop="refProjectNo"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="工程登录编号"
-              prop="refEnginRecordNo"
-              min-width="200"
-              show-overflow-tooltip
-            >
-              <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.refEnginRecordNo" />
-                <span>{{ scope.row.refEnginRecordNo }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="left"
-              label="仓库"
-              prop="correspondName"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column>
-
-            <el-table-column align="left" label="订单类型" prop="enginOrderType" min-width="100" show-overflow-tooltip>
-              <template slot-scope="scope">
-                {{ scope.row.enginOrderType | typeFilter }}
-              </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="refUseUnit"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="项目名称"
-              prop="refProjectName"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column>
-            <!--            <el-table-column align="left" label="销售类型" prop="saleTypeName" min-width="120" show-overflow-tooltip></el-table-column>-->
-            <el-table-column align="left" label="物料编码" prop="materialNumber" min-width="120" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.materialNumber" />
-                <span>{{ scope.row.materialNumber }}</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="unit"
-              min-width="100"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="right"
-              label="总数量"
-              prop="qty"
-              min-width="100"
-              sortable
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="是否直调"
-              prop="isDirectTransfer"
-              min-width="100"
-              show-overflow-tooltip
-            >
-              <template slot-scope="scope">
-                {{ scope.row.isDirectTransfer ? '是' : '否' }}
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="right"
-              label="直调数量"
-              prop="directTransferQty"
-              min-width="110"
-              sortable
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="right"
-              label="出库数量"
-              prop="hasSendQty"
-              min-width="110"
-              sortable
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column align="right" label="单价" prop="price" min-width="100" sortable show-overflow-tooltip>
-              <template slot-scope="scope">
-                {{ scope.row.price | numToFixed }}
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="right"
-              label="实付金额"
-              prop="payAmount"
-              min-width="110"
-              sortable
-              show-overflow-tooltip
-            >
-              <template slot-scope="scope">
-                {{ scope.row.payAmount | numToFixed }}
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="left"
-              label="返利钱包"
-              prop="customerWalletName2"
-              min-width="100"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="right"
-              label="使用返利金额"
-              prop="rebateAmount"
-              min-width="120"
-              show-overflow-tooltip
-            >
-              <template slot-scope="scope">
-                <div v-if="scope.row.examineStatus === 'OK'">
-                  {{ scope.row.payRebateAmount | numToFixed }}
-                </div>
-                <div v-else>{{ scope.row.rebateAmount | numToFixed }}</div>
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="right"
-              label="格力折扣"
-              prop="discAmount"
-              min-width="110"
-              sortable
-              show-overflow-tooltip
-            >
-              <template slot-scope="scope">
-                {{ scope.row.discAmount | numToFixed }}
-              </template>
-            </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="serviceName"
-              min-width="100"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="表体业务员"
-              prop="itemServiceName"
-              min-width="100"
-              show-overflow-tooltip
-            ></el-table-column>
-
-            <el-table-column
-              align="left"
-              label="制表人"
-              prop="createName"
-              min-width="100"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="制表日期"
-              prop="createTime"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="审核人"
-              prop="confirmName"
-              min-width="100"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="审核日期"
-              prop="confirmTime"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column align="center" label="操作" width="220" fixed="right">
-              <template slot-scope="scope">
-                <el-popconfirm
-                  style="margin-right: 10px"
-                  title="确定申请吗?"
-                  @onConfirm="handleSubmit(scope.row.parentId, scope.row)"
-                  v-if="$checkBtnRole('apply', $route.meta.roles) && scope.row.examineStatus === 'SAVE'"
-                >
-                  <el-button slot="reference" type="text">申请</el-button>
-                </el-popconfirm>
-                <el-popconfirm
-                  style="margin-right: 10px"
-                  title="确定撤回吗?"
-                  @onConfirm="handleWithdraw(scope.row.parentId, scope.row)"
-                  v-if="$checkBtnRole('apply', $route.meta.roles) && scope.row.examineStatus === 'WAIT'"
-                >
-                  <el-button slot="reference" type="text">撤回</el-button>
-                </el-popconfirm>
-                <el-popconfirm
-                  style="margin-right: 10px"
-                  title="确定弃审吗?"
-                  @onConfirm="handleAbandon(scope.row.parentId, scope.row)"
-                  v-if="$checkBtnRole('examine', $route.meta.roles) && scope.row.examineStatus === 'OK'"
-                >
-                  <el-button slot="reference" type="text">弃审</el-button>
-                </el-popconfirm>
-                <el-button
-                  type="text"
-                  @click="toForm(scope.row)"
-                  v-if="$checkBtnRole('edit', $route.meta.roles) && scope.row.examineStatus === 'SAVE'"
-                >
-                  编辑
-                </el-button>
-                <el-button
-                  type="text"
-                  @click="toExamine(scope.row)"
-                  v-if="$checkBtnRole('examine', $route.meta.roles) && scope.row.examineStatus === 'WAIT'"
-                >
-                  审批
-                </el-button>
-                <el-button type="text" @click="toReturn(scope.row)" v-if="$checkBtnRole('examine', $route.meta.roles)">
-                  退订
-                </el-button>
-                <el-button type="text" @click="toDetail(scope.row)"> 详情 </el-button>
-                <el-popconfirm
-                  style="margin-left: 10px"
-                  title="确定删除吗?"
-                  @onConfirm="handleDelete(scope.row.parentId, scope.row)"
-                  v-if="$checkBtnRole('del', $route.meta.roles) && scope.row.examineStatus !== 'OK'"
-                >
-                  <el-button slot="reference" type="text" style="color: #f56c6c">删除</el-button>
-                </el-popconfirm>
-              </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>
-
-    <EditDateDialog :isShow.sync="isShowEditDateDialog" :dateForm.sync="dateForm" />
-
-    <CommerceDetail :listItem="queryItem" v-if="isShowDetail" @backListFormDetail="backList" />
-    <CommerceForm :listItem="queryItem" v-if="isShowForm" @backListFormDetail="backList" />
-    <CommerceExamine :listItem="queryItem" v-if="isShowExamine" @backListFormDetail="backList" />
-    <CommerceReturn :listItem="queryItem" v-if="isShowReturn" @backListFormDetail="backList" />
-  </div>
+  <template-page
+    ref="pageRef"
+    :getList="getList"
+    :operation="operation()"
+    :optionsEvensGroup="optionsEvensGroup"
+    :exportList="exportList"
+    :columnParsing="columnParsing"
+    :tableAttributes="tableAttributes"
+    :tableEvents="tableEvents"
+  >
+    <!-- <EditDateDialog :is-show.sync="isShowEditDateDialog" :date-form.sync="dateForm" /> -->
+    <Popu v-if="isShowDetail || isShowForm || isShowExamine || isShowReturn">
+      <CommerceDetail :listItem="queryItem" v-if="isShowDetail" @backListFormDetail="backList" />
+      <CommerceForm :listItem="queryItem" v-if="isShowForm" @backListFormDetail="backList" />
+      <CommerceExamine :listItem="queryItem" v-if="isShowExamine" @backListFormDetail="backList" />
+      <CommerceReturn :listItem="queryItem" v-if="isShowReturn" @backListFormDetail="backList" />
+    </Popu>
+  </template-page>
 </template>
 </template>
 
 
 <script>
 <script>
-import { getOrderList, applyCom, withdrawCom, deleteCom, editDateCom, abandonCom } from '@/api/supply/engin'
+import TemplatePage from '@/components/template/template-page-1.vue'
+import Popu from '@/components/template/popu.vue'
+import add_callback_mixin from '@/components/template/add_callback_mixin.js'
+
+import {
+  getOrderList,
+  applyCom,
+  withdrawCom,
+  deleteCom,
+  editDateCom,
+  abandonCom,
+  v2EnginOrderTradeList,
+  v2EnginOrderTradeListExport
+} from '@/api/supply/engin'
 import { getSalesmanList, getTypeList } from '@/api/common'
 import { getSalesmanList, getTypeList } from '@/api/common'
 import CommerceDetail from '@/views/supply/engin/components/commerce_detail'
 import CommerceDetail from '@/views/supply/engin/components/commerce_detail'
 import CommerceForm from '@/views/supply/engin/components/commerce_form'
 import CommerceForm from '@/views/supply/engin/components/commerce_form'
@@ -521,12 +44,15 @@ import { getNoRebateWalletList } from '@/api/policy_list'
 
 
 let that
 let that
 export default {
 export default {
+  mixins: [add_callback_mixin],
   components: {
   components: {
     CommerceDetail,
     CommerceDetail,
     CommerceForm,
     CommerceForm,
     CommerceExamine,
     CommerceExamine,
     CommerceReturn,
     CommerceReturn,
-    EditDateDialog
+    EditDateDialog,
+    TemplatePage,
+    Popu
   },
   },
   filters: {
   filters: {
     statusFilter(val) {
     statusFilter(val) {
@@ -543,6 +69,46 @@ export default {
   },
   },
   data() {
   data() {
     return {
     return {
+      // 事件组合
+      optionsEvensGroup: [
+        [
+          [
+            {
+              name: '新增',
+              click: this.addOn(() => {
+                this.toForm()
+              }),
+              isRole: this.$checkBtnRole('add', this.$route.meta.roles)
+            }
+          ]
+        ],
+        [
+          [
+            {
+              name: '批量删除',
+              click: async () => {
+                if (this.recordSelected.length === 0) {
+                  this.$message.error('请选择需要删除的数据')
+                  return
+                }
+                this.batchDelete()
+              },
+              isRole: this.$checkBtnRole('del', this.$route.meta.roles)
+            }
+          ]
+        ]
+      ],
+      // 表格属性
+      tableAttributes: {
+        // 启用勾选列
+        selectColumn: true
+      },
+      // 表格事件
+      tableEvents: {
+        'selection-change': this.selectionChange
+      },
+      recordSelected: [],
+
       currentPage: 1, // 当前页码
       currentPage: 1, // 当前页码
       pageSize: 10, // 每页数量
       pageSize: 10, // 每页数量
       listTotal: 0, // 列表总数
       listTotal: 0, // 列表总数
@@ -630,12 +196,146 @@ export default {
   },
   },
 
 
   created() {
   created() {
-    this.getSalesTypeList()
-    this.getSalesmanList()
-    this.getList()
+    // this.getSalesTypeList()
+    // this.getSalesmanList()
+    // this.getList()
   },
   },
 
 
   methods: {
   methods: {
+    // 列表请求函数
+    getList: v2EnginOrderTradeList,
+    // 列表导出函数
+    exportList: v2EnginOrderTradeListExport,
+    // 表格列解析渲染数据更改
+    columnParsing(item, defaultData) {
+      return defaultData
+    },
+    // 监听勾选变化
+    selectionChange(data) {
+      this.recordSelected = data
+    },
+    operation() {
+      return (h, { row, index, column }) => {
+        return (
+          <div class="operation-btns">
+            <div class="operation-btns">
+              {this.$checkBtnRole('apply', this.$route.meta.roles) && row.examineStatus == '保存' ? (
+                <el-popconfirm
+                  onOnConfirm={async () => {
+                    this.handleSubmit(row.parentId, row)
+                  }}
+                  title="是否确定需要申请该项内容?"
+                >
+                  <el-button slot="reference" size="mini" type="text">
+                    申请
+                  </el-button>
+                </el-popconfirm>
+              ) : (
+                ''
+              )}
+
+              {this.$checkBtnRole('apply', this.$route.meta.roles) && row.examineStatus == '待审核' ? (
+                <el-popconfirm
+                  onOnConfirm={async () => {
+                    this.handleWithdraw(row.parentId, row)
+                  }}
+                  title="是否确定需要撤回该项内容?"
+                >
+                  <el-button slot="reference" size="mini" type="text">
+                    撤回
+                  </el-button>
+                </el-popconfirm>
+              ) : (
+                ''
+              )}
+
+              {this.$checkBtnRole('examine', this.$route.meta.roles) && row.examineStatus === '审核通过' ? (
+                <el-popconfirm
+                  onOnConfirm={async () => {
+                    this.handleAbandon(row.parentId, row)
+                  }}
+                  title="是否确定需要弃审该项内容?"
+                >
+                  <el-button slot="reference" size="mini" type="text">
+                    弃审
+                  </el-button>
+                </el-popconfirm>
+              ) : (
+                ''
+              )}
+
+              {this.$checkBtnRole('edit', this.$route.meta.roles) && row.examineStatus === '保存' ? (
+                <el-button
+                  size="mini"
+                  type="text"
+                  onClick={async () => {
+                    this.toForm(row)
+                  }}
+                >
+                  编辑
+                </el-button>
+              ) : (
+                ''
+              )}
+
+              {this.$checkBtnRole('examine', this.$route.meta.roles) && row.examineStatus === '待审核' ? (
+                <el-button
+                  size="mini"
+                  type="text"
+                  onClick={async () => {
+                    this.toExamine(row)
+                  }}
+                >
+                  审批
+                </el-button>
+              ) : (
+                ''
+              )}
+
+              {this.$checkBtnRole('examine', this.$route.meta.roles) ? (
+                <el-button
+                  size="mini"
+                  type="text"
+                  onClick={async () => {
+                    this.toReturn(row)
+                  }}
+                >
+                  退订
+                </el-button>
+              ) : (
+                ''
+              )}
+
+              <el-button
+                size="mini"
+                type="text"
+                onClick={async () => {
+                  this.toDetail(row)
+                }}
+              >
+                详情
+              </el-button>
+
+              {this.$checkBtnRole('del', this.$route.meta.roles) && row.examineStatus !== '审核通过' ? (
+                <el-popconfirm
+                  onOnConfirm={async () => {
+                    this.handleDelete(row.parentId, row)
+                  }}
+                  title="是否确定需要删除该项内容?"
+                >
+                  <el-button slot="reference" size="mini" type="text">
+                    删除
+                  </el-button>
+                </el-popconfirm>
+              ) : (
+                ''
+              )}
+            </div>
+          </div>
+        )
+      }
+    },
+
     // 获取业务员列表
     // 获取业务员列表
     getSalesmanList() {
     getSalesmanList() {
       getSalesmanList({
       getSalesmanList({
@@ -670,40 +370,40 @@ export default {
     },
     },
 
 
     // 查询列表
     // 查询列表
-    getList() {
-      this.listLoading = true
-
-      let params = {
-        pageNum: this.currentPage,
-        pageSize: this.pageSize,
-        examineStatus: this.screenForm.status,
-        enginOrderNo: this.screenForm.orderNum,
-        refProjectNo: this.screenForm.enginNum,
-        refEnginRecordNo: this.screenForm.loginNum,
-        refProjectName: this.screenForm.enginName,
-        startCreateTime: this.screenForm.date ? this.screenForm.date[0] : '',
-        endCreateTime: this.screenForm.date ? this.screenForm.date[1] : '',
-        saleTypeId: this.screenForm.saleType,
-        createName: this.screenForm.createMan,
-        confirmName: this.screenForm.examineMan,
-        customerWalletId: this.screenForm.customerWalletId,
-        serviceId: this.screenForm.salesMan,
-        customerKeyword: this.screenForm.dealer,
-        isDirectTransfer: this.screenForm.isDirectTransfer,
-
-        specification: this.screenForm.model,
-        enginOrderType: 'TRADE' // TRADE=商用 HOME=家用
-      }
-      getOrderList(params).then(res => {
-        res.data.records.forEach(item => {
-          item.sums1 = ['qty', 'directTransferQty', 'hasSendQty']
-          item.sums2 = ['price', 'payAmount', 'discAmount']
-        })
-        this.dataList = res.data.records
-        this.listTotal = res.data.total
-        this.listLoading = false
-      })
-    },
+    // getList() {
+    //   this.listLoading = true
+
+    //   let params = {
+    //     pageNum: this.currentPage,
+    //     pageSize: this.pageSize,
+    //     examineStatus: this.screenForm.status,
+    //     enginOrderNo: this.screenForm.orderNum,
+    //     refProjectNo: this.screenForm.enginNum,
+    //     refEnginRecordNo: this.screenForm.loginNum,
+    //     refProjectName: this.screenForm.enginName,
+    //     startCreateTime: this.screenForm.date ? this.screenForm.date[0] : '',
+    //     endCreateTime: this.screenForm.date ? this.screenForm.date[1] : '',
+    //     saleTypeId: this.screenForm.saleType,
+    //     createName: this.screenForm.createMan,
+    //     confirmName: this.screenForm.examineMan,
+    //     customerWalletId: this.screenForm.customerWalletId,
+    //     serviceId: this.screenForm.salesMan,
+    //     customerKeyword: this.screenForm.dealer,
+    //     isDirectTransfer: this.screenForm.isDirectTransfer,
+
+    //     specification: this.screenForm.model,
+    //     enginOrderType: 'TRADE' // TRADE=商用 HOME=家用
+    //   }
+    //   getOrderList(params).then(res => {
+    //     res.data.records.forEach(item => {
+    //       item.sums1 = ['qty', 'directTransferQty', 'hasSendQty']
+    //       item.sums2 = ['price', 'payAmount', 'discAmount']
+    //     })
+    //     this.dataList = res.data.records
+    //     this.listTotal = res.data.total
+    //     this.listLoading = false
+    //   })
+    // },
 
 
     // 提交筛选表单
     // 提交筛选表单
     submitScreenForm() {
     submitScreenForm() {
@@ -713,7 +413,7 @@ export default {
 
 
     // 重置筛选表单
     // 重置筛选表单
     resetScreenForm() {
     resetScreenForm() {
-        this.$refs.screenForm.resetFields()
+      this.$refs.screenForm.resetFields()
       this.currentPage = 1
       this.currentPage = 1
       this.getList()
       this.getList()
     },
     },
@@ -803,12 +503,13 @@ export default {
         type: 'warning'
         type: 'warning'
       })
       })
         .then(() => {
         .then(() => {
-          let ids = this.multipleSelection.map(item => {
+          let ids = this.recordSelected.map(item => {
             return item.parentId
             return item.parentId
           })
           })
           deleteCom({ ids: ids.join(',') }).then(res => {
           deleteCom({ ids: ids.join(',') }).then(res => {
             this.$successMsg()
             this.$successMsg()
-            this.getList()
+            // this.getList()
+            this.$refs.pageRef.refreshList()
           })
           })
         })
         })
         .catch(() => {})
         .catch(() => {})

+ 9 - 24
src/views/supply/engin/components/home_detail.vue

@@ -5,7 +5,9 @@
 
 
       <div id="printData">
       <div id="printData">
         <div class="main-title">
         <div class="main-title">
-          <div class="title">工程订单 <span style="margin-left: 20px">经销商名称:{{detailData.customerName}}</span></div>
+          <div class="title">
+            工程订单 <span style="margin-left: 20px">经销商名称:{{ detailData.customerName }}</span>
+          </div>
         </div>
         </div>
 
 
         <div class="diy-table-1">
         <div class="diy-table-1">
@@ -383,7 +385,7 @@
             ></el-table-column>
             ></el-table-column>
           </el-table>
           </el-table>
         </div>
         </div>
-        <div class="table" style="margin-top: 20px" v-if="detailData.examineStatus =='OK'">
+        <div class="table" style="margin-top: 20px" v-if="detailData.examineStatus == 'OK'">
           <el-table
           <el-table
             :data="detailData.refundNoteList"
             :data="detailData.refundNoteList"
             element-loading-text="Loading"
             element-loading-text="Loading"
@@ -396,28 +398,11 @@
             :summary-method="$getSummaries"
             :summary-method="$getSummaries"
           >
           >
             <el-table-column align="center" label="序号" type="index" width="50"></el-table-column>
             <el-table-column align="center" label="序号" type="index" width="50"></el-table-column>
-            <el-table-column
-              align="left"
-              label="创建人"
-              prop="createBy"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="创建时间"
-              prop="createTime"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="退订说明"
-              prop="refundNote"
-              show-overflow-tooltip
-            ></el-table-column>
-
+            <el-table-column align="left" label="创建人" prop="createBy" show-overflow-tooltip></el-table-column>
+            <el-table-column align="left" label="创建时间" prop="createTime" show-overflow-tooltip></el-table-column>
+            <el-table-column align="left" label="退订说明" prop="refundNote" show-overflow-tooltip></el-table-column>
           </el-table>
           </el-table>
         </div>
         </div>
-
       </div>
       </div>
 
 
       <div class="page-footer">
       <div class="page-footer">
@@ -445,7 +430,7 @@
       </div>
       </div>
     </div>
     </div>
 
 
-    <el-dialog title="直调发货" :visible.sync="isShowDeliverDialog" width="80%">
+    <el-dialog title="直调发货" append-to-body :visible.sync="isShowDeliverDialog" width="80%">
       <el-form
       <el-form
         ref="deliverForm"
         ref="deliverForm"
         :model="deliverForm"
         :model="deliverForm"
@@ -595,7 +580,7 @@
       </span>
       </span>
     </el-dialog>
     </el-dialog>
 
 
-    <el-dialog title="直接调拨单(提前开票)" :visible.sync="isShowDirectDialog" width="80%">
+    <el-dialog title="直接调拨单(提前开票)" append-to-body :visible.sync="isShowDirectDialog" width="80%">
       <el-form
       <el-form
         ref="directForm"
         ref="directForm"
         :model="directForm"
         :model="directForm"

+ 27 - 18
src/views/supply/engin/components/home_form.vue

@@ -213,14 +213,14 @@
             />
             />
           </el-form-item>
           </el-form-item>
         </el-col>
         </el-col>
-<!--        <el-col :span="24" :sm="12" :lg="8">-->
-<!--          <el-form-item label="计划单" prop="isPlanOrder">-->
-<!--            <el-radio-group v-model="mainForm.isPlanOrder">-->
-<!--              <el-radio :label="true">是</el-radio>-->
-<!--              <el-radio :label="false">否</el-radio>-->
-<!--            </el-radio-group>-->
-<!--          </el-form-item>-->
-<!--        </el-col>-->
+        <!--        <el-col :span="24" :sm="12" :lg="8">-->
+        <!--          <el-form-item label="计划单" prop="isPlanOrder">-->
+        <!--            <el-radio-group v-model="mainForm.isPlanOrder">-->
+        <!--              <el-radio :label="true">是</el-radio>-->
+        <!--              <el-radio :label="false">否</el-radio>-->
+        <!--            </el-radio-group>-->
+        <!--          </el-form-item>-->
+        <!--        </el-col>-->
 
 
         <el-col v-if="mainForm.examineRemark" :xs="24" :sm="24" :lg="24">
         <el-col v-if="mainForm.examineRemark" :xs="24" :sm="24" :lg="24">
           <el-form-item label="审批说明" prop="examineRemark">
           <el-form-item label="审批说明" prop="examineRemark">
@@ -233,8 +233,12 @@
     <div class="main-title">
     <div class="main-title">
       <div class="title">货品信息</div>
       <div class="title">货品信息</div>
       <div>
       <div>
-        <el-select v-model="warehouseValue" placeholder="请选择发货仓库" @change="handleWarehouseValue"
-                   size="small" style="margin-right: 10px"
+        <el-select
+          v-model="warehouseValue"
+          placeholder="请选择发货仓库"
+          @change="handleWarehouseValue"
+          size="small"
+          style="margin-right: 10px"
         >
         >
           <el-option v-for="(item, index) in warehouseList" :key="index" :label="item.name" :value="item.id" />
           <el-option v-for="(item, index) in warehouseList" :key="index" :label="item.name" :value="item.id" />
         </el-select>
         </el-select>
@@ -460,7 +464,13 @@
     </div>
     </div>
 
 
     <!-- 工程登录列表 -->
     <!-- 工程登录列表 -->
-    <el-dialog title="工程登录列表" :visible.sync="isShowDialog" width="70%" :close-on-click-modal="false">
+    <el-dialog
+      title="工程登录列表"
+      append-to-body
+      :visible.sync="isShowDialog"
+      width="70%"
+      :close-on-click-modal="false"
+    >
       <el-form
       <el-form
         ref="screenForm"
         ref="screenForm"
         :model="screenForm"
         :model="screenForm"
@@ -506,9 +516,8 @@
           <el-table-column align="center" label="" width="100">
           <el-table-column align="center" label="" width="100">
             <template slot-scope="scope">
             <template slot-scope="scope">
               <el-button type="primary" size="small" @click="chooseItem(scope.row.recordNo, scope.row.userid)"
               <el-button type="primary" size="small" @click="chooseItem(scope.row.recordNo, scope.row.userid)"
-              >选择
-              </el-button
-              >
+                >选择
+              </el-button>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
           <el-table-column align="center" prop="checkTime" label="工程登录日期" show-overflow-tooltip />
           <el-table-column align="center" prop="checkTime" label="工程登录日期" show-overflow-tooltip />
@@ -536,7 +545,7 @@
       </div>
       </div>
     </el-dialog>
     </el-dialog>
 
 
-    <el-dialog title="添加产品" :visible.sync="isShowGoodsDialog" width="80%">
+    <el-dialog title="添加产品" append-to-body :visible.sync="isShowGoodsDialog" width="80%">
       <el-form ref="goodsScreenForm" :model="goodsScreenForm" size="small" label-position="left">
       <el-form ref="goodsScreenForm" :model="goodsScreenForm" size="small" label-position="left">
         <el-row :gutter="20">
         <el-row :gutter="20">
           <el-col :xs="12" :sm="6" :lg="6">
           <el-col :xs="12" :sm="6" :lg="6">
@@ -646,7 +655,7 @@
         <el-button type="primary" @click="submitAddGoods">确 定</el-button>
         <el-button type="primary" @click="submitAddGoods">确 定</el-button>
       </span>
       </span>
     </el-dialog>
     </el-dialog>
-    <el-dialog title="添加产品" :visible.sync="isSetMaterial" width="80%">
+    <el-dialog title="添加产品" append-to-body :visible.sync="isSetMaterial" width="80%">
       <el-form ref="goodsScreenForm" :model="goodsScreenForm" size="small" label-position="left">
       <el-form ref="goodsScreenForm" :model="goodsScreenForm" size="small" label-position="left">
         <el-row :gutter="20">
         <el-row :gutter="20">
           <el-col :xs="12" :sm="6" :lg="6">
           <el-col :xs="12" :sm="6" :lg="6">
@@ -932,7 +941,7 @@ export default {
       immediate: true,
       immediate: true,
       deep: true
       deep: true
     },
     },
-    'mainForm.saleType': function(newValue, oldValue) {
+    'mainForm.saleType': function (newValue, oldValue) {
       this.oldSaleType = oldValue
       this.oldSaleType = oldValue
     }
     }
   },
   },
@@ -1061,7 +1070,7 @@ export default {
 
 
     // 重置筛选表单
     // 重置筛选表单
     resetScreenForm() {
     resetScreenForm() {
-        this.$refs.screenForm.resetFields()
+      this.$refs.screenForm.resetFields()
       this.dialogTable_currentPage = 1
       this.dialogTable_currentPage = 1
       this.getHomeLoginList()
       this.getHomeLoginList()
     },
     },

File diff suppressed because it is too large
+ 231 - 718
src/views/supply/engin/home_list.vue


Some files were not shown because too many files changed in this diff