howie hace 3 años
padre
commit
01036cd62b

+ 15 - 0
src/views/supply/price.vue

@@ -0,0 +1,15 @@
+<template>
+  <div>
+  <keep-alive>
+    <router-view  v-if="$route.name" :key="$route.path"/>
+    </keep-alive>
+     <router-view  v-if="!$route.name" :key="$route.path"/>
+  </div>
+</template>
+
+<script>
+export default {
+
+}
+</script>
+

+ 1643 - 0
src/views/supply/price/components/modify_list-apply.vue

@@ -0,0 +1,1643 @@
+<template>
+  <div>
+    <div>
+      <el-page-header :content="!cid ? '存货调价单' : '编辑'" @back="goBack" />
+    </div>
+    <br><br>
+    <div>
+      <el-form
+        ref="screenForm"
+        label-width="100px"
+        size="small"
+        label-position="left"
+      >
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="单据编号">
+              <el-input size="mini"
+                v-model="base.updPriceBillId"
+                placeholder="系统自动生成"
+                disabled
+              />
+            </el-form-item>
+          </el-col>
+          <!-- <el-col :xs="24" :sm="12" :lg="6">
+                     <el-form-item label="调价业务员">
+                       <el-select
+                         placeholder="请选择调价业务员"
+                         filterable
+                         @change="handleUser"
+                         v-model="serviceId"
+                       >
+                         <el-option
+                           v-for="(item, index) in userList"
+                           :label="item.nickName"
+                           :value="item.roleId"
+                           :key="index"
+                         ></el-option>
+                       </el-select>
+                     </el-form-item>
+                   </el-col>
+                   <el-col :xs="24" :sm="12" :lg="6">
+                     <el-form-item label="调价部门">
+                       <el-input size="mini"
+                         placeholder="调价部门"
+                         disabled
+                         v-model="adminCompanyName"
+                       ></el-input>
+                     </el-form-item>
+                   </el-col> -->
+          <!-- <el-col :xs="24" :sm="12" :lg="6">
+                     <el-form-item label="销售类型">
+                       <el-select
+                         placeholder="请选择销售类型"
+                         filterable
+                         v-model="saleTypeId"
+                       >
+                         <el-option
+                           v-for="item in typeList"
+                           :label="item.saleName"
+                           :value="item.id"
+                         ></el-option>
+                       </el-select>
+                     </el-form-item>
+                   </el-col> -->
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="备注">
+              <el-input size="mini" v-model="base.remark" placeholder="请输入" />
+            </el-form-item>
+          </el-col>
+
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="" class="fr" />
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+    <div class="btn-group clearfixs" v-if="!cid">
+      <el-upload
+        class="import-btn"
+        :action="baseURL + 'student/import'"
+        :http-request="handleImport"
+        :file-list="importFileList"
+        :show-file-list="false"
+      >
+        <el-button
+          type="primary"
+          size="small"
+        >导入调价单</el-button>
+      </el-upload>
+      <el-button
+        type="primary"
+        size="small"
+        @click="hanleDownloadFiles"
+      >下载模板</el-button>
+    </div>
+    <div class="mymain-container">
+      <!-- 列表 -->
+        <el-form v-if="!detail.length" size="small" label-position="left">
+          <div class="table">
+          <el-table
+            v-loading="listLoading"
+            :data="items"
+            element-loading-text="Loading"
+            border
+            fit
+            highlight-current-row
+            stripe
+          >
+            <el-table-column
+              align="center"
+              label="操作类型"
+              prop="nname"
+              fixed="right"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <!-- <el-button type="text" class="textColor">修改</el-button> -->
+              <template slot-scope="scope">
+                <el-button
+
+                  type="text"
+                  class="textColor"
+                  @click="hanleDeleInd(scope.$index, scope.row.cid,scope.row.materialId)"
+                >删除</el-button>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="销售类型"
+              prop="mainId"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <el-form-item>
+                  <template v-if="!cid">
+                    <el-select
+                    size="mini"
+                      v-model="scope.row.mainId"
+                      placeholder="请选择销售类型"
+                      @change="
+                        handleSale($event, scope.$index, scope.row.saleTypes)
+                      "
+                    >
+                      <el-option
+                        v-for="item in scope.row.saleTypes"
+                        :label="item.saleName"
+                        :value="item.id"
+                      />
+                    </el-select>
+                  </template>
+
+                  <template v-else>
+                    <el-select
+                    size="mini"
+                      v-model="scope.row.saleTypeId"
+                      placeholder="请选择销售类型"
+                      @change="handleSale($event, scope.$index, scope.row.id)"
+                    >
+                      <el-option
+                        v-for="item in typeList"
+                        :label="item.saleName"
+                        :value="item.id"
+                      />
+                    </el-select>
+                  </template>
+                </el-form-item>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="物料编码"
+              prop="materialNumber"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <el-form-item>
+                  <el-input size="mini"
+
+                    v-model="scope.row.materialNumber"
+                    disabled
+                  />
+                </el-form-item>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="产品名称"
+              prop="materialName"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <el-form-item>
+                  <el-input size="mini"
+                    v-model="scope.row.materialName"
+                    disabled
+                  />
+                </el-form-item>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="规格型号"
+              prop="specification"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <el-form-item>
+                  <el-input size="mini"
+                    v-model="scope.row.specification"
+                    disabled
+                  />
+                </el-form-item>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="计量单位"
+              prop="unit"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <el-form-item>
+                  <el-input size="mini" v-model="scope.row.unit" disabled />
+                </el-form-item>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="批发价"
+              prop="batchPrice"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <el-form-item>
+                  <el-input size="mini" v-model="scope.row.batchPrice" placeholder="请输入批发价" />
+                </el-form-item>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="格力折扣"
+              prop="discAmount"
+              min-width="160"
+              show-overflow-tooltip
+            ><template slot-scope="scope">
+              <el-form-item>
+                <el-input size="mini" v-model="scope.row.discAmount" placeholder="请输入格力折扣" />
+              </el-form-item>
+            </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="返利类型"
+              prop="rebateUseRate"
+              min-width="160"
+              show-overflow-tooltip
+            ><template slot-scope="scope">
+              <el-form-item>
+                <el-select
+                size="mini"
+                  v-model="scope.row.walletRebateId"
+                  multiple
+                  :disabled="scope.row.fang"
+                  placeholder="请选择返利类型"
+                  @change="handelRebateList($event, scope.$index, scope.row)"
+                  @remove-tag="handleRemove2($event, scope.$index, scope.row)"
+                >
+                  <el-option
+                    v-for="(item, index) in scope.row.rebateList"
+                    :key="item.index"
+                    :value="item.walletRebateId"
+                    :label="item.name"
+                  />
+                </el-select>
+              </el-form-item>
+            </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="生效日期"
+              prop="startDate"
+              min-width="160"
+              show-overflow-tooltip
+            ><template slot-scope="scope">
+              <el-form-item>
+                <el-date-picker
+                size="mini"
+                  v-model="scope.row.startDate"
+                  type="date"
+                  placeholder="请输入调价日期"
+                  value-format="yyyy-MM-dd"
+                />
+              </el-form-item>
+            </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="失效日期"
+
+              prop="endDate"
+              min-width="160"
+              show-overflow-tooltip
+            ><template slot-scope="scope">
+              <el-form-item>
+                <el-date-picker
+                  v-model="scope.row.endDate"
+                  type="date"
+                        size="mini"
+                  placeholder="请输入调价日期"
+                  value-format="yyyy-MM-dd"
+                />
+              </el-form-item>
+            </template>
+            </el-table-column>
+            <!-- <el-table-column
+              align="center"
+              label="是否促销价"
+              prop="isPromote"
+              min-width="160"
+              show-overflow-tooltip
+            ><template slot-scope="scope">
+              <el-form-item>
+                <el-select
+                  v-model="scope.row.isPromote"
+                  placeholder="请选择是否促销价"
+                >
+                  <el-option
+                    v-for="item in scope.row.isPromoteArr"
+                    :key="item.bool"
+                    :value="item.bool"
+                    :label="item.value"
+                  />
+                </el-select>
+              </el-form-item>
+            </template>
+            </el-table-column> -->
+            <el-table-column
+              align="center"
+              label="数量"
+              prop="qty"
+              min-width="160"
+              show-overflow-tooltip
+            ><template slot-scope="scope">
+              <el-form-item>
+                <el-input size="mini" v-model="scope.row.qty" placeholder="请输入数量" />
+              </el-form-item>
+            </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="现金钱包"
+              prop="wallets"
+              min-width="160"
+              show-overflow-tooltip
+            ><template slot-scope="scope">
+              <el-form-item>
+                <template v-if="!cid">
+                  <el-select
+                  size="mini"
+                    v-model="scope.row.walletsId"
+                    multiple
+                    clearable
+                    placeholder="请选择现金钱包"
+                    @change="handelWallets($event, scope.$index, scope.row)"
+                    @remove-tag="
+                      handleRemove($event, scope.$index, scope.row)
+                    "
+                  >
+                    <el-option
+                      v-for="item in scope.row.walleList"
+                      :key="item.id"
+                      :value="item.id"
+                      :label="item.name"
+                    /> </el-select></template>
+                <template v-else>
+                  <el-select
+                    v-model="scope.row.walletsId"
+                    multiple
+                    clearable
+                    size="mini"
+                    placeholder="请选择现金钱包"
+                    @change="handelWallets($event, scope.$index, scope.row)"
+                    @remove-tag="
+                      handleRemove($event, scope.$index, scope.row)
+                    "
+                  >
+                    <el-option
+                      v-for="item in scope.row.walleList"
+                      :key="item.walletId || item.id"
+                      :value="item.walletId || item.id"
+                      :label="item.walletName || item.name"
+                    /> </el-select></template>
+              </el-form-item>
+            </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="发布"
+              prop="isPublish"
+              min-width="160"
+              show-overflow-tooltip
+            ><template slot-scope="scope">
+              <el-form-item>
+                <el-select
+                size="mini"
+                  v-model="scope.row.isPublish"
+                  placeholder="请选择是否发布"
+                >
+                  <el-option
+                    v-for="item in scope.row.isPublishArr"
+                    :key="item.bool"
+                    :value="item.bool"
+                    :label="item.value"
+                  />
+                </el-select>
+              </el-form-item>
+            </template>
+            </el-table-column>
+          </el-table>
+          </div>
+        </el-form>
+        <el-form v-else :model="detail" size="small" label-position="left">
+          <el-table
+            v-loading="listLoading"
+            :data="detail"
+            element-loading-text="Loading"
+            border
+            fit
+            highlight-current-row
+            stripe
+          >
+            <el-table-column
+              align="center"
+              label="操作类型"
+              prop="nname"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <!-- <el-button type="text" class="textColor">修改</el-button> -->
+              <template slot-scope="scope">
+                <el-button
+                  type="text"
+                  class="textColor"
+                  @click="hanleDeleInd(scope.$index)"
+                >删除</el-button>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="销售类型"
+              prop="mainId"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <el-form-item>
+
+                  <el-select
+                    v-model="scope.row.saleTypeId"
+                    placeholder="请选择销售类型"
+                    @change="handleSale($event, scope.$index, scope.row.id)"
+                  >
+                    <el-option
+                      v-for="item in typeList"
+                      :label="item.saleName"
+                      :value="item.id"
+                    />
+                  </el-select>
+
+                </el-form-item>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="物料编码"
+              prop="materialNumber"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <el-form-item>
+                  <el-input size="mini" v-model="scope.row.materialNumber" />
+                </el-form-item>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="产品名称"
+              prop="materialName"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <el-form-item>
+                  <el-input size="mini" v-model="scope.row.materialName" />
+                </el-form-item>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="规格型号"
+              prop="specification"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <el-form-item>
+                  <el-input size="mini" v-model="scope.row.specification" />
+                </el-form-item>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="计量单位"
+              prop="unit"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <el-form-item>
+                  <el-input size="mini" v-model="scope.row.SalesType" />
+                </el-form-item>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="批发价"
+              prop="batchPrice"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <el-form-item>
+                  <el-input size="mini" v-model="scope.row.batchPrice" />
+                </el-form-item>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="零售价"
+              prop="retailPrice"
+              min-width="160"
+              show-overflow-tooltip
+            ><template slot-scope="scope">
+              <el-form-item>
+                <el-input size="mini" v-model="scope.row.retailPrice" />
+              </el-form-item>
+            </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="返利使用比例"
+              prop="rebateUseRate"
+              min-width="160"
+              show-overflow-tooltip
+            ><template slot-scope="scope">
+              <el-form-item>
+                <el-input size="mini" v-model="scope.row.rebateUseRate" />
+              </el-form-item>
+            </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="返利类型"
+              prop="rebateUseRate"
+              min-width="160"
+              show-overflow-tooltip
+            ><template slot-scope="scope">
+              <el-form-item>
+                <el-select
+                  v-model="scope.row.walletRebateId"
+                  multiple
+                  :disabled="scope.row.fang"
+                  placeholder="请选择返利类型"
+                  @change="handelRebateList($event, scope.$index, scope.row)"
+                  @remove-tag="handleRemove2($event, scope.$index, scope.row)"
+                >
+                  <el-option
+                    v-for="(item, index) in scope.row.rebateList"
+                    :key="item.index"
+                    :value="item.walletRebateId"
+                    :label="item.name"
+                  />
+                </el-select>
+              </el-form-item>
+            </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="生效日期"
+              prop="startDate"
+              min-width="160"
+              show-overflow-tooltip
+            ><template slot-scope="scope">
+              <el-form-item>
+                <el-date-picker
+                  v-model="scope.row.startDate"
+                  type="date"
+                  placeholder="请输入调价日期"
+                  value-format="yyyy-MM-dd"
+                />
+              </el-form-item>
+            </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="失效日期"
+              prop="endDate"
+              min-width="160"
+              show-overflow-tooltip
+            ><template slot-scope="scope">
+              <el-form-item>
+                <el-date-picker
+                  v-model="scope.row.endDate"
+                  type="date"
+                  placeholder="请输入调价日期"
+                  value-format="yyyy-MM-dd"
+                />
+              </el-form-item>
+            </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="是否促销价"
+              prop="isPromote"
+              min-width="160"
+              show-overflow-tooltip
+            ><template slot-scope="scope">
+              <el-form-item>
+                <el-select
+                  v-model="scope.row.isPromote"
+                  placeholder="请选择是否促销价"
+                >
+                  <el-option
+                    v-for="item in scope.row.isPromoteArr"
+                    :key="item.bool"
+                    :value="item.bool"
+                    :label="item.value"
+                  />
+                </el-select>
+              </el-form-item>
+            </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="数量"
+              prop="qty"
+              min-width="160"
+              show-overflow-tooltip
+            ><template slot-scope="scope">
+              <el-form-item>
+                <el-input size="mini" v-model="scope.row.qty" />
+              </el-form-item>
+            </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="支付钱包类型"
+              prop="wallets"
+              min-width="160"
+              show-overflow-tooltip
+            ><template slot-scope="scope">
+              <el-form-item>
+                <el-select
+                  v-model="scope.row.isPublish"
+                  placeholder="请选择支付钱包类型"
+                >
+                  <el-option
+                    v-for="item in scope.row.rebateList"
+                    :key="item.walletRebateId"
+                    :value="item.walletRebateId"
+                    :label="item.name"
+                  />
+                </el-select>
+              </el-form-item>
+            </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="发布"
+              prop="isPublish"
+              min-width="160"
+              show-overflow-tooltip
+            ><template slot-scope="scope">
+              <el-form-item>
+                <el-select
+                  v-model="scope.row.isPublish"
+                  placeholder="请选择是否发布"
+                >
+                  <el-option
+                    v-for="item in scope.row.isPublishArr"
+                    :key="item.bool"
+                    :value="item.bool"
+                    :label="item.value"
+                  />
+                </el-select>
+              </el-form-item>
+            </template>
+            </el-table-column>
+          </el-table>
+        </el-form>
+        <el-dialog
+          title="提示"
+          :visible.sync="centerDialogVisible"
+          width="50%"
+          center
+          class="dia"
+        >
+          <el-form
+            ref="form"
+            :model="form"
+            label-width="80px"
+            :inline="false"
+            size="normal"
+          >
+            <el-form-item label="产品类型">
+              <el-select v-model="materialId" placeholder="请选择" width="100%">
+                <el-option
+                  v-for="item in materialLis"
+                  :key="item.id"
+                  :label="item.name"
+                  :value="item.id"
+                />
+              </el-select>
+            </el-form-item>
+          </el-form>
+
+          <span slot="footer" class="dialog-footer">
+            <el-button @click="centerDialogVisible = false">取 消</el-button>
+            <el-button type="primary" @click="hanleAdd">确 定</el-button>
+          </span>
+        </el-dialog>
+    </div>
+    <div class="btn-group clearfix">
+      <template v-if="!cid">
+        <el-button size="small" @click="handleReseat">重置</el-button>
+        <el-button
+          size="small"
+          type="primary"
+          @click="hanleSbumit"
+        >提交</el-button>
+      </template>
+      <template v-else>
+        <el-button
+          size="small"
+          type="primary"
+          @click="hanleSave"
+        >保存</el-button>
+      </template>
+      <el-button
+        style="float: right"
+        type="primary"
+        size="small"
+        @click="centerDialogVisible = true"
+      >添加</el-button>
+    </div>
+
+    <el-dialog title="" :visible.sync="centerDialogVisible" width="80%" center>
+      <div>
+        <el-form
+          ref="screenForm"
+          :model="screenForm"
+          label-width="70px"
+          size="small"
+          label-position="left"
+        >
+          <el-row :gutter="20">
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="名称" prop="keyword">
+                <el-input size="mini"
+                  v-model="screenForm.keyword"
+                  placeholder="请输入名称"
+                />
+              </el-form-item>
+            </el-col>
+              <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="物料编码" prop="materialNumber">
+                <el-input size="mini"
+                  v-model="screenForm.materialNumber"
+                  placeholder="请输入物料编码"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="规格" prop="specification">
+                <el-input size="mini"
+                  v-model="screenForm.specification"
+                  placeholder="请输入规格"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="12" class="tr">
+              <el-form-item label="">
+                <el-button
+                  size="small"
+                  @click="resetScreenForm"
+                >清空</el-button>
+                <el-button
+                  size="small"
+                  type="primary"
+                  @click="submitScreenForm"
+                >搜索</el-button>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </div>
+      <div class="mymain-container">
+        <div class="table">
+          <el-table
+            ref="multipleTable"
+            v-loading="listLoading"
+            :data="dataList"
+            element-loading-text="Loading"
+            border
+            fit
+            highlight-current-row
+            stripe
+            @select-all="handleSelectionAllChange"
+            @selection-change="handleSelectionChange"
+          >
+<!--            :selectable="selectable"-->
+            <el-table-column
+              align="center"
+              type="selection"
+              width="55"
+            />
+            <el-table-column
+              align="center"
+              label="使用组织"
+              prop="useOrgName"
+              min-width="100"
+            />
+            <el-table-column
+              align="center"
+              label="物料编码"
+              prop="number"
+              min-width="100"
+              label-class-name="bianma"
+              class-name="fontstyle"
+            />
+
+            <el-table-column
+              align="center"
+              label="名称"
+              prop="name"
+              min-width="100"
+            />
+            <el-table-column
+              align="center"
+              label="规格型号"
+              prop="specification"
+              min-width="100"
+            />
+            <el-table-column
+              align="center"
+              label="数据状态"
+              prop="forbidStatus"
+              min-width="100"
+            >
+              <template slot-scope="scope">
+                <el-tag
+                  v-if="scope.row.forbidStatus == 'A'"
+                  type="success"
+                >正常</el-tag>
+                <el-tag v-else type="danger">禁用</el-tag>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="是否维护商城资料"
+              prop="maintainData"
+              min-width="100"
+            />
+            <el-table-column
+              align="center"
+              label="是否维护内外机档案"
+              prop="maintainFiles"
+              min-width="100"
+            />
+            <el-table-column
+              align="center"
+              label="基本单位"
+              prop="baseUnitId"
+              min-width="100"
+            />
+            <el-table-column
+              align="center"
+              label="已使用"
+              prop="used"
+              min-width="100"
+            />
+          </el-table>
+        </div>
+        <!-- 分页 -->
+        <div class="fr">
+          <el-pagination
+            :current-page="currentPage"
+            :page-sizes="[10]"
+            :page-size="10"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="listTotal"
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+          />
+        </div>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="centerDialogVisible = false">取 消</el-button>
+        <el-button type="primary" @click="handleDetermine">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getMaterialList,
+  getProductRriceAdd,
+  getProductRriceDetail,
+  getRebate,
+  getTypeList,
+  getUserList,
+  getWalletList,
+  handleEdit
+} from '@/api/basic_data/material'
+
+import { downloadFiles, handleImport } from '@/utils/util'
+
+import Mixin from '@/mixin/index'
+
+export default {
+  mixins: [Mixin],
+  props: ['cid'],
+  data() {
+    return {
+      baseURL: '',
+      importFileList: [],
+      listLoading: false,
+      screenForm: {
+        keyword: '',
+        specification: '',
+        materialNumber:''
+      },
+      base: {
+        adminCompanyId: '',
+        adminWebsitId: '',
+        billId: '',
+        examineNote: '',
+        examineResult: true,
+        examineStatus: '',
+        id: null,
+        serviceId: '',
+        serviceName: '',
+        remark: '',
+        saleTypeId: ''
+      },
+      items: [],
+      materialLis: [],
+      materialId: '',
+      rebateList: [],
+      typeList: [],
+      saleTypeId: '',
+      serviceId: '',
+      adminCompanyId: '',
+      serviceName: '',
+      adminCompanyName: '',
+      adminWebsitId: '',
+      remark: '',
+      detail: [],
+      form: {},
+      startDate: '',
+      userList: [],
+      centerDialogVisible: false,
+      selectData: [],
+      walleList: [],
+      fang: true,
+      wall1: [],
+      wall2: []
+    }
+  },
+  mounted() {
+
+  },
+  methods: {
+    handleSale(e, index, saleTypes) {
+      // console.log(this.rebateList);
+       this.$set(this.items[index], 'rebateList', [])
+      const linshi = []
+      let saleArr = []
+      const rebateList = []
+      this.rebateList.forEach((k) => {
+        k.saleTypes.forEach((j) => {
+          if (!linshi.includes(j.saleTypeId) && j.saleTypeId == e) {
+            rebateList.push(k)
+          }
+        })
+      })
+
+      saleArr = this.typeList.filter((i) => {
+        return e == i.id
+      })
+      console.log(rebateList, '4444', this.rebateList, e)
+      // this.items[index].mainName = saleArr[0].mainName;
+      this.items[index].saleTypeId = e
+      this.items[index].fang = false
+      this.items[index].saleTypeName = saleArr[0].saleName
+      this.$set(this.items[index], 'rebateList', rebateList)
+      // this.fang = false;
+    },
+    resArr(arr1, arr2) {
+      return arr1.filter((v) => arr2.every((val) => val.id != v.id))
+    },
+    // xua
+    handelWallets(e, index, row) {
+      // const id = row.cid || row.updPriceBillId
+      // // if (e && e.length) {
+      //   for (let i = 0; i < e.length; i++) {
+      //     // if (!this.wall1.includes(e[e.length - 1])) {
+      //       this.$set(row, 'wallets', [
+      //         ...row.wallets,
+      //         {
+      //           type: 'COMMONLY',REBATE
+      //           id: '',
+      //           updPriceBillId: id,
+      //           updPriceBillItemId: id,
+      //           walletId: e[e.length - 1]
+      //         }
+      //       ])
+      //       // this.wall1.push(e[e.length - 1])
+      //     }
+      //   // }
+      // // }
+    },
+    handelRebateList(e, index, row) {
+      // const id = row.cid || row.updPriceBillId
+      // if (e && e.length) {
+      //   for (let i = 0; i < e.length; i++) {
+      //     if (!this.wall2.includes(e[e.length - 1])) {
+      //       console.log(44544)
+      //       this.$set(row, 'wallets', [
+      //         ...row.wallets,
+      //         {
+      //           type: 'REBATE',
+      //           id: '',
+      //           updPriceBillId: id,
+      //           updPriceBillItemId: id,
+      //           walletId: e[e.length - 1]
+      //         }
+      //       ])
+      //       this.wall2.push(e[e.length - 1])
+      //     }
+      //   }
+      // }
+    },
+    handleRemove(e, index, row) {
+      // const copxyWall = JSON.parse(JSON.stringify(row.wallets))
+      // if (row.wallets[0].walletId === e) {
+      //   copxyWall.splice(0, 1)
+      // }
+      // for (let i = 0; i < row.wallets.length; i++) {
+      //   if (this.wall1.includes(e) && row.wallets[i].walletId === e) {
+      //     this.wall1.splice(i, 1)
+      //     copxyWall.splice(i, 1)
+      //   }
+      // }
+      // this.$set(row, 'wallets', copxyWall)
+    },
+    handleRemove2(e, index, row) {
+      // const copxyWall = JSON.parse(JSON.stringify(row.wallets))
+      // for (let i = 0; i < row.wallets.length; i++) {
+      //   if (this.wall2.includes(e) && row.wallets[i].walletId == e) {
+      //     copxyWall.splice(i, 1)
+      //     this.wall2.splice(i, 1)
+      //   }
+      // }
+      // this.$set(row, 'wallets', copxyWall)
+    },
+    handleUser(e) {
+      const adminCompany = this.userList.filter((k) => {
+        return e == k.roleId
+      })[0]
+      this.adminWebsitId = adminCompany.adminUserId
+      this.adminCompanyName = adminCompany.adminCompanyName
+      this.serviceName = adminCompany.nickName || 'd'
+      this.serviceId = adminCompany.roleId
+    },
+    goBack() {
+      this.$parent.cid = ''
+      this.$parent.show = 1
+      // 更新父组件数据
+      this.$parent.getList()
+    },
+    indexMethod(index) {
+      console.log(index)
+    },
+    hanleDeleInd(index, id,materialId) {
+
+      if (id || materialId) {
+        const dataArr = JSON.parse(JSON.stringify(this.dataList))
+        for (let j = 0; j < dataArr.length; j++) {
+          if ((id || materialId) === dataArr[j].id) {
+            // dataArr[j].disabled = false
+            console.log(747)
+            this.$set(dataArr[j], 'disabled', false)
+          }
+        }
+        this.dataList = dataArr
+      }
+
+      this.items.splice(index, 1)
+    },
+    handleDetermine() {
+      if (this.selectData.length) {
+        for (let i = 0; i < this.selectData.length; i++) {
+          for (let j = 0; j < this.dataList.length; j++) {
+            if (this.selectData[i].id == this.dataList[j].id) {
+              this.dataList[j].disabled = true
+            }
+          }
+          this.items.push({
+            baseUnitId: '',
+            batchPrice: '',
+            unit: this.selectData[i].baseUnitId,
+            billId: '',
+            endDate: '',
+            isPromote: '',
+            isPublish: '',
+            materialId: this.selectData[i].id,
+            materialName: this.selectData[i].name,
+            materialNumber: this.selectData[i].number,
+            discAmount: '',
+            saleTypes: this.selectData[i].saleTypes,
+            materialOldNumber: this.selectData[i].oldNumber,
+            parentId: '',
+            walletRebateName: '',
+            walletRebateId: [],
+            rebateRate: '',
+            qty: '',
+            rebateUseRate: '',
+            retailPrice: '' || 0,
+            saleTypeId: '',
+            specification: this.selectData[i].specification,
+            startDate: this.selectData[i].startDate,
+            wallets: [],
+            rebateWallets: [],
+            rebateList: [],
+            walletsId: [this.selectData[i].wallets[0].id],
+            walleList: this.selectData[i].wallets,
+            isPublishArr: [
+              {
+                value: '是',
+                bool: true
+              },
+              {
+                value: '否',
+                bool: false
+              }
+            ],
+            isPromoteArr: [
+              {
+                value: '是',
+                bool: true
+              },
+              {
+                value: '否',
+                bool: false
+              }
+            ],
+            cid: this.selectData[i].id,
+            fang: true
+          })
+        }
+
+        this.selectData = []
+        this.$refs.multipleTable.clearSelection()
+        this.centerDialogVisible = false
+      } else {
+        this.$errorMsg('请选择内容')
+      }
+    },
+    getMaterialList() {
+      const params = {
+        pageNum: 1,
+        pageSize: 10,
+        keyword: '',
+        bindMain: true
+      }
+      getMaterialList(params).then((res) => {
+        this.materialLis = res.data.records
+      })
+    },
+    handleSelectionAllChange(e) {
+      this.selectData = e
+    },
+    handleSelectionChange(e) {
+      this.selectData = e
+    },
+    hanleAdd() {
+      if (this.materialId) {
+        this.centerDialogVisible = false
+      } else {
+        this.$errorMsg('请选择产品')
+      }
+    },
+    async getList() {
+      const params1 = {
+        pageNum: 1,
+        pageSize: -1,
+        saleCode: '',
+        saleName: '',
+        status: ''
+      }
+      getTypeList(params1).then((res) => {
+        this.typeList = res.data.records
+      })
+      getUserList({
+        pageNum: 1,
+        pageSize: -1,
+        adminWebsitId: '',
+        isCustomer: 0,
+        roleId: '',
+        status: '',
+        userName: ''
+      }).then((res) => {
+        this.userList = res.data.records
+      })
+      this.listLoading = true
+      const params = {
+        pageNum: this.currentPage,
+        pageSize: 10 || this.pageSize,
+        keyword: this.screenForm.keyword,
+        specification: this.screenForm.specification,
+        number:this.screenForm.materialNumber,
+        bindMain: true,
+      }
+      getMaterialList(params).then((res) => {
+        this.dataList = res.data.records
+        this.listTotal = res.data.total
+        this.listLoading = false
+      })
+
+      const rebateParams = {
+        pageNum: 1,
+        pageSize: -1,
+        mainName: '',
+        saleTypeCode: '',
+        saleTypeName: '',
+        status: ''
+      }
+      const ress = await getRebate(rebateParams)
+      this.rebateList = ress.data.records
+      const wall = await getWalletList({ mainId: '', walletName: '' })
+      for (let u = 0; u < wall.data.length; u++) {
+        wall.data[u].walletId = wall.data[u].id
+        wall.data[u].walletName = wall.data[u].name
+      }
+      this.walleList = wall.data
+      if (this.$parent.show === 5) {
+        getProductRriceDetail({ id: this.cid }).then((res) => {
+          for (let i = 0; i < res.data.items.length; i++) {
+            const linshi = []
+            const rebateList = []
+            const walletIds = []
+            const walletRebateIds = []
+            res.data.items[i].isPublishArr = [
+              {
+                value: '是',
+                bool: true
+              },
+              {
+                value: '否',
+                bool: false
+              }
+            ]
+            res.data.items[i].isPromoteArr = [
+              {
+                value: '是',
+                bool: true
+              },
+              {
+                value: '否',
+                bool: false
+              }
+            ]
+            res.data.items[i].wallets = []
+            res.data.items[i].walletsId = []
+            res.data.items[i].walletRebateId = []
+            res.data.items[i].rebateWallets = []
+
+            for (let p = 0; p < res.data.items[i].wallets2.length; p++) {
+              if (res.data.items[i].wallets2[p].type === 'COMMONLY') {
+                walletIds.push(res.data.items[i].wallets2[p].walletId)
+                this.$set(res.data.items[i], 'wallets', [
+                  ...res.data.items[i].wallets,
+                  {
+                    type: 'COMMONLY',
+                    id: '',
+                    updPriceBillId: res.data.items[i].updPriceBillId,
+                    updPriceBillItemId: res.data.items[i].updPriceBillId,
+                    walletId: res.data.items[i].wallets2[p].walletId
+                  }
+                ])
+              } else if (res.data.items[i].wallets2[p].type === 'REBATE') {
+                walletRebateIds.push(res.data.items[i].wallets2[p].walletId)
+                this.$set(res.data.items[i], 'wallets', [
+                  ...res.data.items[i].wallets,
+                  {
+                    type: 'REBATE',
+                    id: '',
+                    updPriceBillId: res.data.items[i].updPriceBillId,
+                    updPriceBillItemId: res.data.items[i].updPriceBillId,
+                    walletId: res.data.items[i].wallets2[p].walletId
+                  }
+                ])
+              }
+            }
+            console.log(res.data.items[i].wallets)
+            this.rebateList.forEach((k) => {
+              k.saleTypes.forEach((j) => {
+                if (
+                  !linshi.includes(j.saleTypeId) &&
+                  j.saleTypeId === res.data.items[i].saleTypeId
+                ) {
+                  for (let w = 0; w < walletRebateIds.length; w++) {
+                    if (walletRebateIds[w] !== k.walletRebateId) {
+                      // walletRebateIds.splice(w, 1)
+                    }
+                  }
+                  rebateList.push(k)
+                }
+              })
+            })
+            if (this.dataList.length) {
+              for (let j = 0; j < res.data.items.length; j++) {
+                for (let k = 0; k < this.dataList.length; k++) {
+                  if (res.data.items[j].materialId === this.dataList[k].id) {
+                    this.dataList[k].disabled = true
+                  }
+                }
+              }
+              // console.log(this.dataList)
+            }
+            this.$set(res.data.items[i], 'walletsId', walletIds)
+            this.$set(res.data.items[i], 'walletRebateId', walletRebateIds)
+            res.data.items[i].walleList = this.walleList
+            res.data.items[i].rebateList = rebateList
+            res.data.items[i].fang = false
+          }
+
+          this.items = res.data.items
+          this.base = res.data
+          this.listLoading = false
+        })
+      } else {
+
+      }
+    },
+    /**
+     * 根据条件禁用行复选框
+     * 函数返回值为false则禁用选择(反之亦然)
+     * @param {Object} row - 行数据
+     * @param {String} index - 索引值
+     * @return Boolean
+     */
+    // selectable: function(row, index) {
+    //   // row.disabled == undefined 才能被选中
+    //   if (row.disabled == undefined || row.disabled == false) {
+    //     return true
+    //   } else {
+    //     return false
+    //   }
+    //   // 函数必须有返回值且是布尔值
+    //   // 页面刷新后该函数会执行 N 次进行判断(N 为表格行数)
+    //   // 如果没有返回值则默认返回false(全部无法选中)
+    // },
+    hanleSbumit() {
+      this.filterWallets(this.items)
+      // return
+      const params = {
+        ...this.base,
+        items: this.items,
+        saleTypeId: this.saleTypeId,
+        adminWebsitId: this.adminWebsitId,
+        serviceId: this.serviceId,
+        adminCompanyName: this.adminCompanyName,
+        serviceName: this.nickName,
+             billType:'HOME'
+      }
+      getProductRriceAdd(params).then((res) => {
+        console.log(res.code,'klkk');
+        this.$successMsg('成功')
+        this.$parent.show = 1
+        this.$parent.getList()
+
+      }).catch((err)=>{
+        console.log(err);
+       for (let j = 0; j < this.items.length; j++) {
+          this.$set(this.items[j],'wallets',[])
+        }
+
+
+      })
+    },
+    hanleSave() {
+      this.filterWallets(this.items)
+      handleEdit({
+        ...this.base,
+        items: this.items,
+        saleTypeId: this.saleTypeId,
+        adminWebsitId: this.adminWebsitId,
+        serviceId: this.serviceId,
+        adminCompanyName: this.adminCompanyName,
+        serviceName: this.nickName,
+             billType:'HOME'
+      }).then((res) => {
+        this.$successMsg('成功')
+        this.$parent.cid = ''
+        this.$parent.show = 1
+        this.$parent.getList()
+
+      }).catch((err)=>{
+       for (let j = 0; j < this.items.length; j++) {
+
+         this.$set(this.items[j],'wallets',[])
+
+        }
+
+
+      })
+    },
+    handleReseat() {
+      this.base = {
+        adminCompanyId: '',
+        adminWebsitId: '',
+        billId: '',
+        examineNote: '',
+        examineResult: true,
+        examineStatus: '',
+        id: null,
+        serviceId: '',
+        serviceName: '',
+        remark: '',
+        saleTypeId: ''
+      }
+      this.saleTypeId = ''
+      this.items = []
+    },
+    // 导入
+    async handleImport(param) {
+      this.importLoading = true
+      const file = param.file
+      const formData = new FormData()
+      formData.append('file', file)
+
+      const result = await handleImport('/product-upd-price/material/import', formData)
+      this.importLoading = false
+      this.importFileList = []
+      if (result.code === 200) {
+        this.$alert(result.message, '导入成功', {
+          confirmButtonText: '确定'
+        })
+
+        for (let i = 0; i < result.data.length; i++) {
+          const linshi = []
+          const rebateList = []
+          const walletIds = []
+          const walletRebateIds = []
+          // result.data[i].id = result.data[i].materialId
+          result.data[i].isPublishArr = [
+            {
+              value: '是',
+              bool: true
+            },
+            {
+              value: '否',
+              bool: false
+            }
+          ]
+          result.data[i].isPromoteArr = [
+            {
+              value: '是',
+              bool: true
+            },
+            {
+              value: '否',
+              bool: false
+            }
+          ]
+          result.data[i].wallets = []
+          result.data[i].walletsId = []
+          result.data[i].walletRebateId = []
+          result.data[i].rebateWallets = []
+          result.data[i].saleTypes = this.typeList
+          result.data[i].mainId = result.data[i].saleTypeId
+          for (let p = 0; p < result.data[i].wallets2.length; p++) {
+            if (result.data[i].wallets2[p].type === 'COMMONLY') {
+              walletIds.push(result.data[i].wallets2[p].walletId)
+              this.$set(result.data[i], 'wallets', [
+                ...result.data[i].wallets,
+                {
+                  type: 'COMMONLY',
+                  id: '',
+                  updPriceBillId: result.data[i].updPriceBillId,
+                  updPriceBillItemId: result.data[i].updPriceBillId,
+                  walletId: result.data[i].wallets2[p].walletId
+                }
+              ])
+            } else if (result.data[i].wallets2[p].type === 'REBATE') {
+              walletRebateIds.push(result.data[i].wallets2[p].walletId)
+              this.$set(result.data[i], 'wallets', [
+                ...result.data[i].wallets,
+                {
+                  type: 'REBATE',
+                  id: '',
+                  updPriceBillId: result.data[i].updPriceBillId,
+                  updPriceBillItemId: result.data[i].updPriceBillId,
+                  walletId: result.data[i].wallets2[p].walletId
+                }
+              ])
+            }
+          }
+
+          this.rebateList.forEach((k) => {
+            k.saleTypes.forEach((j) => {
+              if (
+                !linshi.includes(j.saleTypeId) &&
+                j.saleTypeId === result.data[i].saleTypeId
+              ) {
+                for (let w = 0; w < walletRebateIds.length; w++) {
+                  if (walletRebateIds[w] !== k.walletRebateId) {
+                    // walletRebateIds.splice(w, 1)
+                  }
+                }
+
+                rebateList.push(k)
+              }
+            })
+          })
+
+          this.$set(result.data[i], 'walletsId', walletIds)
+          this.$set(result.data[i], 'walletRebateId', walletRebateIds)
+          result.data[i].walleList = this.walleList
+          result.data[i].rebateList = rebateList
+          result.data[i].fang = false
+        }
+        // if (this.dataList.length) {
+        //   for (let j = 0; j < result.data.length; j++) {
+        //     for (let k = 0; k < this.dataList.length; k++) {
+        //       if (result.data[j].materialId === this.dataList[k].id) {
+        //         this.dataList[k].disabled = true
+        //       }
+        //     }
+        //   }
+        // }
+
+
+        // this.items = [...this.items,...result.data]
+        // let newArr = [];
+        // let obj = {};
+        // for (var i = 0; i < this.items.length; i++) {
+        //   if (!obj[this.items[i].materialId]) {
+        //     newArr.push(this.items[i])
+        //     obj[this.items[i].materialId] = true
+        //   }
+        // }
+        // console.log(newArr,454 ,obj)
+        this.items = [...this.items,...result.data]
+        // console.log(resArrs(result.data,this.dataList),'55555')
+
+      } else {
+        this.$alert(result.message, '导入失败', {
+          confirmButtonText: '确定'
+        })
+      }
+    },
+    // 下载经销商模板
+    hanleDownloadFiles() {
+      downloadFiles('/product-upd-price/download')
+    },
+    filterWallets(array){
+      const wallets = []
+      for (let i = 0; i < array.length; i++) {
+        if (array[i].walletsId.length){
+        for (let j = 0; j < array[i].walleList.length; j++) {
+          for (let k = 0; k < array[i].walletsId.length; k++) {
+            if (array[i].walleList[j].id === array[i].walletsId[k]) {
+              wallets.push({
+                type: 'COMMONLY',
+                id: '',
+                updPriceBillId: array[i].cid || array[i].updPriceBillId,
+                updPriceBillItemId: array[i].cid || array[i].updPriceBillId,
+                walletId: array[i].walletsId[k]
+              })
+            }
+          }
+        }
+        array[i].wallets = wallets
+      }
+       if(array[i].walletRebateId.length){
+          for (let k = 0; k < array[i].rebateList.length; k++) {
+          if (!array[i].walletRebateId.length) return
+          for (let j = 0; j < array[i].walletRebateId.length; j++) {
+            if (array[i].rebateList[k].walletRebateId === array[i].walletRebateId[j]) {
+              wallets.push({
+                type: 'REBATE',
+                id: '',
+                updPriceBillId: array[i].cid || array[i].updPriceBillId,
+                updPriceBillItemId: array[i].cid || array[i].updPriceBillId,
+                walletId: array[i].walletRebateId[j]
+              })
+            }
+          }
+              array[i].wallets = wallets
+        }
+
+       }
+      }
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-date-editor--date {
+  width: 100%;
+}
+.dia .el-select--normal {
+  width: 100%;
+}
+.clearfixs{
+  display: flex;
+}
+.import-btn{
+  margin-right: 10px;
+}
+</style>

+ 339 - 0
src/views/supply/price/components/modify_list-approval.vue

@@ -0,0 +1,339 @@
+<template>
+  <div>
+    <div>
+      <el-page-header @back="goBack" content="审批"> </el-page-header>
+    </div>
+    <br />
+    <br />
+    <div>
+      <el-form
+        ref="screenForm"
+        :model="detail"
+        label-width="120px"
+        size="small"
+        label-position="left"
+      >
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="单据编号" prop="billId">
+              <el-input
+                placeholder="请输入"
+                disabled
+                v-model="detail.updPriceBillId"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="调价部门" prop="account">
+              <el-input placeholder="请输入" v-model="detail.adminWebsitName"  disabled></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="调价业务员" prop="operatorName">
+              <el-input
+                disabled
+                placeholder="请输入"
+                v-model="detail.serviceName"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="备注" prop="operatorName">
+              <el-input
+                disabled
+                placeholder="请输入"
+                v-model="detail.remark"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <div class="mymain-container">
+          <!-- 列表 -->
+          <div class="table">
+            <el-table
+              :data="detail.items"
+              element-loading-text="Loading"
+              border
+              fit
+              highlight-current-row
+              stripe
+            >
+              <el-table-column
+                align="center"
+                label="销售类型"
+                prop="saleTypeId"
+                min-width="160"
+                :formatter="formatterType"
+                show-overflow-tooltip
+              >
+              </el-table-column>
+              <el-table-column
+                align="center"
+                label="物料编码"
+                prop="materialId"
+                min-width="160"
+                show-overflow-tooltip
+              ></el-table-column>
+              <el-table-column
+                align="center"
+                label="产品名称"
+                prop="materialName"
+                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="unit"
+                min-width="160"
+                show-overflow-tooltip
+              ></el-table-column>
+              <el-table-column
+                align="center"
+                label="批发价"
+                prop="batchPrice"
+                min-width="160"
+                show-overflow-tooltip
+              ></el-table-column>
+              <el-table-column
+                align="center"
+                label="格力折扣"
+                prop="discAmount"
+                min-width="160"
+                show-overflow-tooltip
+              >
+              </el-table-column>
+             <el-table-column
+                align="center"
+                label="返利类型(钱包)"
+                prop="wallets2"
+                min-width="200"
+                show-overflow-tooltip
+              >
+                <template slot-scope="scope">
+                  <template v-for="(item, index) in scope.row.wallets2">
+                    <template v-if="item.type === 'REBATE'">
+                      <el-tag
+                        type="success"
+                        style="margin: 0 10px"
+                        size="small"
+                        :key="index"
+                      >
+                        {{ item.walletName }}
+                      </el-tag>
+                    </template>
+                  </template>
+                </template>
+              </el-table-column>
+              <el-table-column
+                align="center"
+                label="现金钱包"
+                prop="wallets2"
+                min-width="200"
+                show-overflow-tooltip
+              >
+                <template slot-scope="scope">
+                  <template v-for="(item, index) in scope.row.wallets2">
+                    <template v-if="item.type === 'COMMONLY'">
+                      <el-tag
+                        type="success"
+                        style="margin: 0 10px"
+                        size="small"
+                        :key="index"
+                      >
+                        {{ item.walletName }}
+                      </el-tag>
+                    </template>
+                  </template>
+                </template>
+              </el-table-column>
+              <el-table-column
+                align="center"
+                label="生效日期"
+                prop="startDate"
+                min-width="160"
+                show-overflow-tooltip
+              >
+              </el-table-column>
+              <el-table-column
+                align="center"
+                label="失效日期"
+                prop="endDate"
+                min-width="160"
+                show-overflow-tooltip
+              >
+              </el-table-column>
+              <!-- <el-table-column
+                align="center"
+                label="是否促销价"
+                prop="isPromote"
+                min-width="160"
+                show-overflow-tooltip
+              >
+                <template slot-scope="scope">
+                  <el-tag type="success" v-if="scope.row.isPromote">是</el-tag>
+                  <el-tag type="danger" v-else>否</el-tag>
+                </template>
+              </el-table-column> -->
+              <el-table-column
+                align="center"
+                label="数量"
+                prop="qty"
+                min-width="160"
+                show-overflow-tooltip
+              >
+              </el-table-column>
+              <el-table-column
+                align="center"
+                label="发布"
+                prop="isPublish"
+                min-width="160"
+                show-overflow-tooltip
+              >
+                <template slot-scope="scope">
+                  <el-tag type="success" v-if="scope.row.isPublish">是</el-tag>
+                  <el-tag type="danger" v-else>否</el-tag>
+                </template>
+              </el-table-column>
+            </el-table>
+          </div>
+        </div>
+        <el-row>
+          <el-col :xs="24" :sm="24" :lg="24">
+            <h3>审批</h3>
+            <hr />
+          </el-col>
+        </el-row>
+        <div class="diy-table-1">
+          <el-row :gutter="0">
+            <el-col :xs="12" :sm="12" :lg="12" class="item">
+              <div class="label">审批人</div>
+              <div class="value">{{ this.$store.getters.name }}</div>
+            </el-col>
+            <el-col :xs="12" :sm="12" :lg="12" class="item">
+              <div class="label">审批结果</div>
+              <div class="value">
+                <el-radio-group v-model="radio">
+                  <el-radio label="OK" >通过</el-radio>
+                  <el-radio label="FAIL" >驳回</el-radio>
+                </el-radio-group>
+              </div>
+            </el-col>
+            <el-col :xs="24" :sm="24" :lg="24" class="item">
+              <div class="label">审批说明</div>
+              <div class="value">
+                <el-input v-model="detail.examineNote" size="small"></el-input>
+              </div>
+            </el-col>
+          </el-row>
+        </div>
+        <br />
+        <div class="btn-group clearfix">
+          <div class="fl">
+            <el-button type="primary" size="small" @click="onSubmit"
+              >提交审批</el-button
+            >
+            <!-- <el-button type="primary" size="small" @click="resetScreenForm"
+              >重置</el-button
+            > -->
+          </div>
+        </div>
+      </el-form>
+    </div>
+  </div>
+</template>
+
+<script>
+import { getProductRriceConfirm, getTypeList, getUserList } from '@/api/basic_data/material'
+
+export default {
+  // mixins: [Mixin],
+  props: {
+    detail: {
+      type: Object,
+      default: {},
+    },
+  },
+  data() {
+    return {
+      radio: 'OK',
+      dataList: [
+      ],
+      typeList: [],
+      userList:[],
+      men:'',
+      ren:''
+    };
+  },
+
+  created() {
+    let params = {
+      pageNum: 1,
+      pageSize: -1,
+      saleCode: "",
+      saleName: "",
+      status: "",
+    };
+    getTypeList(params).then((res) => {
+      this.typeList = res.data.records;
+    });
+    getUserList({
+      pageNum: 1,
+      pageSize: -1,
+      adminWebsitId: "",
+      isCustomer: 0,
+      roleId: "",
+      status: "",
+      userName: "",
+    }).then((res) => {
+      this.userList = res.data.records;
+
+    });
+  },
+  methods: {
+    formatterType(row) {
+      return this.typeList.filter((k) => {
+        return k.id == row.saleTypeId;
+      })[0]?.saleName;
+    },
+    goBack() {
+      console.log(this.$parent);
+      this.$parent.show = 1;
+    },
+    onSubmit() {
+          console.log(this.radio);
+      const params = {
+        ...this.detail,
+        examineStatus:this.radio,
+             billType:'HOME'
+      };
+
+      getProductRriceConfirm(params).then((res) => {
+        this.$successMsg("已提交审核");
+        this.$parent.show = 1
+        this.$parent.getList()
+      });
+    },
+    resetScreenForm() {
+      this.detail = {};
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-date-editor--date {
+  width: 100%;
+}
+::v-deep .el-select {
+  width: 100%;
+}
+</style>

+ 319 - 0
src/views/supply/price/components/modify_list-detail.vue

@@ -0,0 +1,319 @@
+<template>
+  <div>
+    <div>
+      <el-page-header @back="goBack" content="详情"> </el-page-header>
+    </div>
+    <div style="margin-top:20px;">
+      <el-form
+        ref="screenForm"
+        :model="detail"
+        label-width="120px"
+        size="small"
+        label-position="left"
+      >
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="单据编号" prop="billId">
+              <el-input
+                placeholder="系统生成"
+                disabled
+                v-model="detail.updPriceBillId"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="调价部门" prop="account">
+              <el-input placeholder="系统生成" v-model="detail.adminWebsitName" disabled></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="调价业务员" prop="operatorName">
+              <el-input disabled placeholder="系统生成" v-model="detail.serviceName"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="备注" prop="operatorName">
+              <el-input
+                disabled
+                placeholder="系统生成"
+                v-model="detail.remark"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <div class="mymain-container">
+          <!-- 列表 -->
+          <div class="table">
+            <el-table
+              :data="detail.items"
+              element-loading-text="Loading"
+              border
+              fit
+              highlight-current-row
+              stripe
+            >
+              <el-table-column
+                align="center"
+                label="销售类型"
+                prop="saleTypeId"
+                :formatter="formatterType"
+                min-width="160"
+                show-overflow-tooltip
+              ></el-table-column>
+              <el-table-column
+                align="center"
+                label="物料编码"
+                prop="materialId"
+                min-width="160"
+                show-overflow-tooltip
+              ></el-table-column>
+              <el-table-column
+                align="center"
+                label="产品名称"
+                prop="materialName"
+                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="unit"
+                min-width="160"
+                show-overflow-tooltip
+              ></el-table-column>
+              <el-table-column
+                align="center"
+                label="批发价"
+                prop="batchPrice"
+                min-width="160"
+                show-overflow-tooltip
+              ></el-table-column>
+              <el-table-column
+                align="center"
+                label="格力折扣"
+                prop="discAmount"
+                min-width="160"
+                show-overflow-tooltip
+              >
+              </el-table-column>
+              <el-table-column
+                align="center"
+                label="返利类型(钱包)"
+                prop="wallets2"
+                min-width="200"
+                show-overflow-tooltip
+              >
+                <template slot-scope="scope">
+                  <template v-for="(item, index) in scope.row.wallets2">
+                    <template v-if="item.type === 'REBATE'">
+                      <el-tag
+                        type="success"
+                        style="margin: 0 10px"
+                        size="mini"
+                        :key="index"
+                      >
+                        {{ item.walletName }}
+                      </el-tag>
+                    </template>
+                  </template>
+                </template>
+              </el-table-column>
+              <el-table-column
+                align="center"
+                label="现金钱包"
+                prop="wallets2"
+                min-width="200"
+                show-overflow-tooltip
+              >
+                <template slot-scope="scope">
+                  <template v-for="(item, index) in scope.row.wallets2">
+                    <template v-if="item.type === 'COMMONLY'">
+                      <el-tag
+                        type="success"
+                        style="margin: 0 10px"
+                       size="mini"
+                        :key="index"
+                      >
+                        {{ item.walletName }}
+                      </el-tag>
+                    </template>
+                  </template>
+                </template>
+              </el-table-column>
+              <el-table-column
+                align="center"
+                label="生效日期"
+                prop="startDate"
+                min-width="160"
+                show-overflow-tooltip
+              >
+              </el-table-column>
+              <el-table-column
+                align="center"
+                label="失效日期"
+                prop="endDate"
+                min-width="160"
+                show-overflow-tooltip
+              >
+              </el-table-column>
+              <!-- <el-table-column
+                align="center"
+                label="是否促销价"
+                prop="isPromote"
+                min-width="160"
+                show-overflow-tooltip
+              >
+                <template slot-scope="scope">
+                  <el-tag type="success" v-if="scope.row.isPromote">是</el-tag>
+                  <el-tag type="danger" v-else>否</el-tag>
+                </template>
+              </el-table-column> -->
+              <el-table-column
+                align="center"
+                label="数量"
+                prop="qty"
+                min-width="160"
+                show-overflow-tooltip
+              >
+              </el-table-column>
+              <el-table-column
+                align="center"
+                label="发布"
+                prop="isPublish"
+                min-width="160"
+                show-overflow-tooltip
+              >
+                <template slot-scope="scope">
+                  <el-tag type="success" size="mini" v-if="scope.row.isPublish">是</el-tag>
+                  <el-tag type="danger" size="mini" v-else>否</el-tag>
+                </template>
+              </el-table-column>
+            </el-table>
+          </div>
+        </div>
+        <div class="diy-table-1">
+          <el-row :gutter="0">
+            <el-col :xs="12" :sm="8" :lg="8" class="item">
+              <div class="label">审批人</div>
+              <div class="value">
+              <!-- {{ this.$store.getters.name }} -->
+              {{detail.confirmName}}
+              </div>
+            </el-col>
+            <el-col :xs="12" :sm="8" :lg="8" class="item">
+              <div class="label">审批结果</div>
+              <div class="value">
+                {{ detail.examineStatus=='OK' ? "通过" : "驳回" }}
+              </div>
+            </el-col>
+            <el-col :xs="12" :sm="8" :lg="8" class="item">
+              <div class="label">审批时间</div>
+              <div class="value">{{ detail.confirmTime }}</div>
+            </el-col>
+            <el-col :xs="24" :sm="24" :lg="24" class="item">
+              <div class="label">审批说明</div>
+              <div class="value">{{ detail.examineNote }}</div>
+            </el-col>
+          </el-row>
+        </div>
+      </el-form>
+    </div>
+  </div>
+</template>
+
+<script>
+import { getTypeList, getUserList } from '@/api/basic_data/material'
+
+export default {
+  props: {
+    detail: {
+      type: Object,
+      default: {},
+    },
+  },
+  data() {
+    return {
+      dataList: [
+        {
+          SalesType: "*一票机*",
+          code: "23022051775",
+          name: "夏之凉变频1",
+          model: "KFR-26GW",
+          company: "套",
+          wholesale: "2999",
+          retail: "2899",
+          rebate: "0.8",
+          effectiveDate: "2021-11-02",
+          expiryDate: "2021-11-02",
+          promotion: "否",
+          number: "51",
+          release: "是",
+        },
+      ],
+      typeList: [],
+      userList: [],
+      men: "",
+      ren: "",
+    };
+  },
+  created() {
+    let params = {
+      pageNum: 1,
+      pageSize: -1,
+      saleCode: "",
+      saleName: "",
+      status: "",
+    };
+    console.log(this.detail);
+    getTypeList(params).then((res) => {
+      this.typeList = res.data.records;
+    });
+    getUserList({
+      pageNum: 1,
+      pageSize: -1,
+      adminWebsitId: "",
+      isCustomer: 0,
+      roleId: "",
+      status: "",
+      userName: "",
+    }).then((res) => {
+      this.userList = res.data.records;
+      var a = this.userList.filter((k) => {
+        return k.roleId == this.detail.serviceId;
+      })[0];
+      // this.men = a.adminCompanyName;
+      // this.ren = a.nickName;
+    });
+  },
+  methods: {
+    formatterType(row) {
+      return this.typeList.filter((k) => {
+        return k.id == row.saleTypeId;
+      })[0]?.saleName;
+    },
+    goBack() {
+      console.log(this.$parent);
+      this.$parent.show = 1;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-date-editor--date {
+  width: 100%;
+}
+::v-deep .el-select {
+  width: 100%;
+}
+</style>

+ 730 - 0
src/views/supply/price/modify_list.vue

@@ -0,0 +1,730 @@
+<template>
+  <div class="app-container">
+    <div v-if="show === 1">
+      <!-- 筛选条件 -->
+      <div>
+        <div>
+          <el-form
+            ref="screenForm"
+            :model="screenForm"
+            label-width="70px"
+            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
+                    placeholder="请输入物料编码"
+                    v-model="screenForm.materialNumber"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :lg="6">
+                <el-form-item label="产品名称" prop="materialName">
+                  <el-input
+                    placeholder="请输入产品名称"
+                    v-model="screenForm.materialName"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :lg="6">
+                <el-form-item label="产品编码" prop="materialOldNumber">
+                  <el-input
+                    placeholder="请输入产品编码"
+                    v-model="screenForm.materialOldNumber"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+<!--              <el-col :xs="24" :sm="12" :lg="6">-->
+<!--                <el-form-item label="生效日期" prop="startDate">-->
+<!--                  <el-date-picker-->
+<!--                    v-model="screenForm.startDate"-->
+<!--                    type="datetime"-->
+<!--                    placeholder="请输入生效日期"-->
+<!--                    value-format="yyyy-MM-dd HH:mm:ss"-->
+<!--                  >-->
+<!--                  </el-date-picker>-->
+<!--                </el-form-item>-->
+<!--              </el-col>-->
+<!--              <el-col :xs="24" :sm="12" :lg="6">-->
+<!--                <el-form-item label="失效日期" prop="endDate">-->
+<!--                  <el-date-picker-->
+<!--                    v-model="screenForm.endDate"-->
+<!--                    type="datetime"-->
+<!--                    placeholder="请输入生效日期"-->
+<!--                    value-format="yyyy-MM-dd HH:mm:ss "-->
+<!--                  >-->
+<!--                  </el-date-picker>-->
+<!--                </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"
+                    filterable
+                    placeholder="选择销售类型"
+                    style="width: 100%"
+                  >
+                    <el-option label="全部" value=""></el-option>
+                    <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-col :xs="24" :sm="12" :lg="6">
+                <el-form-item label="产品类别" prop="k3CategoryNumber">
+                  <el-select
+                  style="width:100%"
+                    placeholder="请选择产品类别"
+                    v-model="screenForm.k3CategoryNumber"
+                  >
+                    <el-option label="全部" value=""></el-option>
+                    <el-option
+                      v-for="item in dictList"
+                      :label="item.name"
+                      :value="item.number"
+                    ></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :lg="6">
+                <el-form-item label="规格型号" prop="specification">
+                  <el-input
+                    placeholder="请输入规格型号"
+                    v-model="screenForm.specification"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+
+              <el-col :xs="24" :sm="24" :lg="24" class="tr">
+                <el-form-item label="">
+                  <el-button size="mini" @click="resetScreenForm">清空</el-button>
+                  <el-button size="mini" type="primary" @click="submitScreenForm"
+                  >搜索</el-button
+                  >
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-form>
+      </div>
+      </div>
+      <!-- 按钮 -->
+      <div class="btn-group clearfix">
+        <div class="fl">
+          <el-button type="primary"  v-if="$checkBtnRole('add', $route.meta.roles)"  icon="el-icon-plus" size="mini" @click="addFn">新增</el-button>
+          <!-- <el-button type="primary" size="mini">编辑</el-button> -->
+          <el-popconfirm
+           v-if="$checkBtnRole('del', $route.meta.roles)"
+            confirm-button-text="好的"
+            cancel-button-text="不用了"
+            icon="el-icon-info"
+            icon-color="red"
+            title="内容确定删除吗?"
+            @onConfirm="hanleDeleteAll"
+          >
+            <el-button
+              type="primary"
+              size="mini"
+                icon="el-icon-delete"
+              slot="reference"
+              class="el-popover-left"
+              >删除</el-button
+            >
+          </el-popconfirm>
+        </div>
+        <div class="fr">
+            <ExportButton :exUrl="'/product-upd-price/export'" :exParams="exParams" />
+          <!-- <el-button type="primary" size="mini">导入</el-button>
+          <el-button type="primary" size="mini">导出</el-button>
+          <el-button type="primary" size="mini">打印</el-button> -->
+        </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
+            @select-all="hanleSelectAll"
+            @select="hanleSelectAll"
+            stripe
+          >
+            <el-table-column
+              type="selection"
+              align="left"
+              width="50"
+            ></el-table-column>
+            <el-table-column
+              align="left"
+              label="单据号"
+              prop="updPriceBillId"
+              min-width="200"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.updPriceBillId" />
+                <span>{{scope.row.updPriceBillId}}</span>
+              </template>
+            </el-table-column>
+
+            <el-table-column
+              align="left"
+              label="销售类型"
+              prop="saleTypeName"
+              :formatter="formatterType"
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <!-- <el-table-column
+              align="left"
+              label="产品类别"
+              prop="mainName"
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column> -->
+            <el-table-column
+              align="left"
+              label="物料编码"
+              prop="materialNumber"
+              min-width="160"
+              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="materialName"
+              min-width="200"
+              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="materialOldNumber"
+              min-width="200"
+              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="specification"
+              min-width="200"
+              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="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="right"
+              label="数量"
+              prop="qty"
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="right"
+              label="批发价"
+              prop="batchPrice"
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+
+            <el-table-column
+              align="right"
+              label="格力折扣"
+              prop="discAmount"
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="left"
+              label="调价日期"
+              prop="createTime"
+              min-width="200"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="left"
+              label="生效日期"
+              prop="startDate"
+              min-width="200"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="left"
+              label="失效日期"
+              prop="endDate"
+              min-width="200"
+              show-overflow-tooltip
+            ></el-table-column>
+           <!-- <el-table-column
+              align="left"
+              label="是否促销价"
+              prop="isPromote"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <el-tag size="mini" type="success" v-if="scope.row.isPromote">是</el-tag>
+                <el-tag size="mini"  type="danger" v-else>否</el-tag>
+              </template>
+            </el-table-column> -->
+            <el-table-column
+              align="left"
+              label="返利类型(钱包)"
+              prop="wallets"
+              min-width="200"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <template v-for="(item, index) in scope.row.wallets">
+                     <template v-if="item.type === 'REBATE'">
+                        <el-tag
+                  type="success"
+                  style="margin: 0 10px"
+                  size="mini"
+
+                  :key="index"
+                  >
+               {{ item.walletName }}
+                </el-tag>
+                  </template
+                  >
+                </template>
+
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="现金钱包"
+              prop="modifyPriceDepartment"
+              min-width="200"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <template  v-for="(item, index) in scope.row.wallets">
+                  <template v-if="item.type === 'COMMONLY'">
+
+                   <el-tag
+                  type="success"
+                  style="margin: 0 10px"
+                  size="mini"
+
+                  :key="index"
+                >
+                {{ item.walletName }}
+                </el-tag>
+                    </template
+                  >
+                </template>
+
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="调价部门"
+              prop="adminWebsitName"
+              min-width="200"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="left"
+              label="调价业务员"
+              prop="serviceName"
+              min-width="200"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="left"
+              label="制单日期"
+              prop="createTime"
+              min-width="200"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="left"
+              label="审核人"
+              prop="confirmName"
+              min-width="200"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="left"
+              label="审核日期"
+              prop="confirmTime"
+              min-width="200"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="left"
+              label="状态"
+              prop="examineStatus"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <el-tag size="mini" type="success" v-if="scope.row.examineStatus == 'SAVE'"
+                  >保存</el-tag
+                >
+                <el-tag
+                  size="mini"
+                  type="danger"
+                  v-else-if="scope.row.examineStatus == 'WAIT'"
+                  >待审核</el-tag
+                >
+                <el-tag
+                  size="mini"
+                  type="danger"
+                  v-else-if="scope.row.examineStatus == 'OK'"
+                  >通过</el-tag
+                >
+                <el-tag
+                  size="mini"
+                  type="danger"
+                  v-else-if="scope.row.examineStatus == 'FAIL'"
+                  >不通过</el-tag
+                >
+                <el-tag size="mini" type="danger" v-else>审核</el-tag>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="操作"
+              fixed="right"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <template v-if="scope.row.examineStatus == 'SAVE'">
+                  <el-popconfirm
+                    title="确定提审吗?"
+                    @onConfirm="handleGetPriceSubmit(scope.row.updPriceBillId)"
+                    style="margin-right: 10px"
+                  >
+                    <el-button type="text" slot="reference">提审</el-button>
+                  </el-popconfirm>
+                </template>
+                <template v-if="scope.row.examineStatus == 'WAIT'">
+                  <el-button
+                    type="text"
+                    class="textColor"
+                    @click="approvalFn(scope.row.updPriceBillId)"
+                    >审批</el-button
+                  >
+                </template>
+                <el-button
+                 v-if="scope.row.examineStatus == 'SAVE'"
+                  type="text"
+                  class="textColor"
+                  @click="editFn(scope.row.updPriceBillId,scope.row)"
+                  >编辑</el-button
+                >
+                <el-button
+                  type="text"
+                  class="textColor"
+                  @click="detailFn(scope.row.updPriceBillId)"
+                  >详情</el-button
+                >
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+        <!-- 分页 -->
+        <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>
+    <ModifyListApply v-else-if="show === 2 || show==5" :cid='cid'/>
+    <ModifyListApproval v-else-if="show === 3 " :detail="detail" />
+    <ModifyListDetail v-else :detail="detail" />
+  </div>
+</template>
+
+<script>
+import ModifyListApply from './components/modify_list-apply.vue'
+import ModifyListApproval from './components/modify_list-approval.vue'
+import ModifyListDetail from './components/modify_list-detail.vue'
+import Mixin from '@/mixin/index'
+import {
+  getPriceSubmit,
+  getProductRricedel,
+  getProductRriceDetail,
+  getProductRriceList,
+  getTypeList
+} from '@/api/basic_data/material'
+import { downloadFiles } from '@/utils/util'
+import { getCategoryList } from '@/api/common'
+
+export default {
+  mixins: [Mixin],
+  data() {
+    return {
+      show: 1,
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      dataList: [
+        {
+          baseUnitId: "",
+          batchPrice: "",
+          billId: "",
+          endDate: "",
+          id: null,
+          isPromote: "",
+          isPublish: "",
+          materialId: "",
+          materialName: "",
+          materialNumber: "",
+          parentId: "",
+          qty: "",
+          rebateUseRate: "",
+          retailPrice: "",
+          saleTypeId: "",
+          specification: "",
+          startDate: "",
+          wallets: [],
+        },
+      ],
+      screenForm: {
+        materialName: "",
+        materialNumber: "",
+        startDate: "",
+        materialOldNumber:'',
+        saleTypeId:'',
+        k3CategoryNumber:'',
+        specification:''
+      },
+      liDetail: {},
+      detail: {},
+      obj: {
+        baseUnitId: "",
+        batchPrice: "",
+        billId: "",
+        endDate: "",
+        id: null,
+        isPromote: "",
+        isPublish: "",
+        materialId: "4",
+        materialName: "",
+        materialNumber: "",
+        parentId: "",
+        qty: "",
+        rebateUseRate: "",
+        retailPrice: "",
+        saleTypeId: "",
+        specification: "",
+        startDate: "",
+        wallets: [],
+      },
+      cid:'',
+      typeList: [],
+      dictList:[]
+    };
+  },
+  components: {
+    ModifyListApply,
+    ModifyListApproval,
+    ModifyListDetail,
+  },
+  computed:{
+    exParams() {
+      return {
+        materialName: this.screenForm.materialName,
+        materialNumber: this.screenForm.materialNumber,
+        startDate:this.screenForm.startDate,
+             billType:'HOME'
+      };
+    },
+  },
+  mounted() {
+    let params = {
+      pageNum: 1,
+      pageSize: -1,
+      saleCode: "",
+      saleName: "",
+      status: "",
+    };
+    getTypeList(params).then((res) => {
+      this.typeList = res.data.records;
+    });
+   getCategoryList({ pageNum:1,pageSize:-1}).then((res) => {
+      this.dictList = res.data.records
+      console.log(this.dictList,777777)
+    })
+  },
+  methods: {
+    formatterType(row) {
+      for (let i = 0; i < this.typeList.length; i++) {
+        if (this.typeList[i].id == row.saleTypeId) {
+          return this.typeList[i].saleName;
+        }
+      }
+    },
+    addFn() {
+      this.show = 2;
+    },
+    hanleDeleteAll(id) {
+
+      this.hanleDeleteAllPromise(id).then((ids) => {
+
+        getProductRricedel(ids).then((res) => {
+          this.$successMsg("删除成功");
+          this.getList();
+        });
+      });
+    },
+    handleGetPriceSubmit(id) {
+      console.log(id);
+      getPriceSubmit({ id }).then((res) => {
+        this.$successMsg("已提审");
+        this.getList();
+      });
+    },
+    approvalFn(id) {
+      getProductRriceDetail({ id }).then((res) => {
+        this.detail = res.data;
+        this.show = 3;
+      });
+    },
+    detailFn(id) {
+      getProductRriceDetail({ id }).then((res) => {
+        this.detail = res.data;
+
+        this.show = 4;
+      });
+    },
+    getList() {
+      this.listLoading = true;
+      console.log(456654);
+      let params = {
+        pageNum: this.currentPage,
+        pageSize: this.pageSize,
+        materialName: this.screenForm.materialName,
+        materialNumber: this.screenForm.materialNumber,
+        startDate: this.screenForm.startDate,
+        materialOldNumber:this.screenForm.materialOldNumber,
+        saleTypeId:this.screenForm.saleTypeId,
+        k3CategoryNumber:this.screenForm.k3CategoryNumber,
+        specification:this.screenForm.specification,
+        billType:'HOME'
+      };
+      getProductRriceList(params).then((res) => {
+        this.dataList = res.data.records;
+        this.listTotal = res.data.total;
+        this.listLoading = false;
+      });
+    },
+    editFn(id, row) {
+          this.cid = id
+         this.show = 5;
+
+
+      // this.diaLogForm = {
+      //   id,
+      //   composeNumber: row.composeNumber,
+      //   items: row.items === undefined ? [] : row.items,
+      //   materialId: row.materialId,
+      //   orgNumber: row.orgNumber,
+      //   productModel: row.productModel,
+      //   productVolume: row.productVolume,
+      // };
+      // this.showDialogForm = true;
+    },
+    hanleInfo() {
+      if (this.type === 1) {
+        getProductAdd(this.diaLogForm).then((res) => {
+          this.$successMsg("保存成功");
+          console.log(params, 123);
+          this.getList();
+        });
+      } else if (this.type === 2) {
+        const params = {
+          ...this.diaLogForm,
+        };
+        console.log(params, 123);
+        getProductEdit(params).then((res) => {
+          this.$successMsg("编辑成功");
+          this.getList();
+        });
+        this.diaLogForm.id = null;
+      }
+      this.showDialogForm = false;
+    },
+    hanleDelete(id) {
+      this.hanleDeleteAllPromise(id).then((ids) => {
+        getProductDel(ids).then((res) => {
+          this.$successMsg("删除成功");
+        });
+      });
+    },
+    handleExport() {
+      let screenData = {
+        customerName: this.screenForm.customerName,
+        freeDay: this.screenForm.freeDay,
+        toll: this.screenForm.toll,
+      };
+      downloadFiles("/product-compose/export", screenData);
+    },
+    resetInfo() {
+      this.diaLogForm = {
+        id: null,
+        composeNumber: "",
+        id: "",
+        items: [],
+        materialId: "",
+        orgNumber: 0,
+        productModel: "",
+        productVolume: "",
+      };
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-select--small {
+  width: 100%;
+}
+</style>

+ 485 - 0
src/views/supply/price/price_list.vue

@@ -0,0 +1,485 @@
+<template>
+  <div class="app-container">
+    <!-- 筛选条件 -->
+    <div>
+      <el-form
+        ref="screenForm"
+        :model="screenForm"
+        label-width="70px"
+        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="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="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="startDate">-->
+          <!--              <el-date-picker-->
+          <!--                v-model="screenForm.startDate"-->
+          <!--                type="datetime"-->
+          <!--                placeholder="请输入生效日期"-->
+          <!--                value-format="yyyy-MM-dd HH:mm:ss"-->
+          <!--              >-->
+          <!--              </el-date-picker>-->
+          <!--            </el-form-item>-->
+          <!--          </el-col>-->
+          <!--          <el-col :xs="24" :sm="12" :lg="6">-->
+          <!--            <el-form-item label="失效日期" prop="endDate">-->
+          <!--              <el-date-picker-->
+          <!--                v-model="screenForm.endDate"-->
+          <!--                type="datetime"-->
+          <!--                placeholder="请输入生效日期"-->
+          <!--                value-format="yyyy-MM-dd HH:mm:ss "-->
+          <!--              >-->
+          <!--              </el-date-picker>-->
+          <!--            </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"
+                filterable
+                placeholder="选择销售类型"
+                style="width: 100%"
+              >
+                <el-option label="全部" value="" />
+                <el-option
+                  v-for="item in ztypeList"
+                  :key="item.id"
+                  :label="item.saleName"
+                  :value="item.id"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="产品类别" prop="k3CategoryNumber">
+              <el-select
+                v-model="screenForm.k3CategoryNumber"
+                placeholder="请选择产品类别"
+              >
+                <el-option label="全部" value="" />
+                <el-option
+                  v-for="item in dictList"
+                  :label="item.name"
+                  :value="item.number"
+                />
+              </el-select>
+            </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="specification">
+              <el-input
+                v-model="screenForm.remark"
+                placeholder="请输入备注"
+              />
+            </el-form-item>
+          </el-col>
+
+          <el-col :xs="24" :sm="24" :lg="24" class="tr">
+            <el-form-item label="">
+              <el-button size="mini" @click="resetScreenForm">清空</el-button>
+              <el-button
+                size="mini"
+                type="primary"
+                @click="submitScreenForm"
+              >搜索</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+    <!-- 按钮 -->
+    <div class="btn-group clearfix">
+      <div >
+           <el-popconfirm
+           v-if="$checkBtnRole('del', $route.meta.roles)"
+            confirm-button-text="好的"
+            cancel-button-text="不用了"
+            icon="el-icon-info"
+            icon-color="red"
+            title="内容确定删除吗?"
+            @onConfirm="handleDelete"
+          >
+            <el-button
+              type="primary"
+              size="mini"
+                icon="el-icon-delete"
+              slot="reference"
+              class="el-popover-left"
+              >删除</el-button
+            >
+          </el-popconfirm>
+<!--        <el-button type="primary" size="mini">导出</el-button>-->
+        <!-- <el-button type="primary" size="mini">打印</el-button> -->
+      </div>
+    </div>
+    <div class="mymain-container">
+      <!-- 列表 -->
+      <div class="table">
+        <el-table
+          v-loading="listLoading"
+          :data="dataList"
+          element-loading-text="Loading"
+          border
+          fit
+          stripe
+             @select-all="hanleSelectAll"
+            @select="hanleSelectAll"
+        >
+           <el-table-column
+              type="selection"
+              align="left"
+              width="50"
+            ></el-table-column>
+<!--          <el-table-column type="selection" align="left" />-->
+          <!-- <el-table-column
+            align="left"
+            label="产品类别"
+            prop="mainName"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column> -->
+          <el-table-column
+            align="left"
+            label="物料编码"
+            prop="materialNumber"
+            min-width="200"
+            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="200"
+            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="200"
+            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="200"
+            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="saleTypeName"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="left"
+            label="单位"
+            prop="unit"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="left"
+            label="数量下限"
+            prop="qty"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="left"
+            label="返利类型(钱包)"
+            prop="wallets"
+            min-width="200"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              <template v-for="(item, index) in scope.row.wallets">
+                <template v-if="item.type === 'REBATE'">
+                  <el-tag
+                    :key="index"
+                    type="success"
+                    style="margin: 0 10px"
+                    size="mini"
+                  >
+                    {{ item.walletName }}
+                  </el-tag>
+                </template>
+              </template>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="left"
+            label="现金钱包"
+            prop="modifyPriceDepartment"
+            min-width="200"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              <template v-for="(item, index) in scope.row.wallets">
+                <template v-if="item.type === 'COMMONLY'">
+                  <el-tag
+                    :key="index"
+                    type="success"
+                    style="margin: 0 10px"
+                    size="mini"
+                  >
+                    {{ item.walletName }}
+                  </el-tag>
+                </template>
+              </template>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="left"
+            label="生效日期"
+            prop="startDate"
+            min-width="160"
+            show-overflow-tooltip
+          />
+
+          <el-table-column
+            align="left"
+            label="失效日期"
+            prop="endDate"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="left"
+            label="是否促销价"
+            prop="isPromote"
+            min-width="160"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              <el-tag size="mini" v-if="scope.row.isPromote" type="success">是</el-tag>
+              <el-tag size="mini" v-else type="danger">否</el-tag>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="left"
+            label="是否促作废"
+            prop="isRevoke"
+            min-width="160"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              <el-tag size="mini" v-if="scope.row.isRevoke" type="success">是</el-tag>
+              <el-tag size="mini" v-else type="danger">否</el-tag>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="right"
+            label="批发价1"
+            prop="batchPrice"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="right"
+            label="格力折扣"
+            prop="discAmount"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="left"
+            label="备注"
+            prop="remark"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            fixed="left"
+            width="150"
+            label="操作"
+            align="center"
+          >
+            <template slot-scope="scope">
+              <el-popconfirm
+                v-if="!scope.row.isRevoke"
+                style="margin-right: 10px"
+                title="作废吗?"
+                @onConfirm="handleRevoke(scope.row.id)"
+              >
+                <el-button
+                  slot="reference"
+                  type="text"
+                  size="mini"
+                >作废</el-button>
+              </el-popconfirm>
+
+              <el-button
+                v-if="$checkBtnRole('del', $route.meta.roles)"
+                type="text"
+                size="mini"
+                @click="handleDelete(scope.row.id)"
+              >删除</el-button>
+            </template>
+          </el-table-column>
+        </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>
+</template>
+
+<script>
+import Mixin from '@/mixin/index'
+import { getProductDelete, getProductPriceList, getTypeList, handlePriceRevoke } from '@/api/basic_data/material'
+import { getCategoryList } from '@/api/common'
+
+export default {
+  mixins: [Mixin],
+  data() {
+    return {
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      dataList: [],
+      screenForm: {
+        k3CategoryNumber: '',
+        endDate: '',
+        materialName: '',
+        materialNumber: '',
+        materialOldNumber: '',
+        saleTypeId: '',
+        specification: '',
+        startDate: '',
+        remark:''
+      },
+      ztypeList: [],
+      dictList: {}
+    }
+  },
+  mounted() {
+    getCategoryList({ pageNum:1,pageSize:-1}).then((res) => {
+      this.dictList = res.data.records
+      console.log(this.dictList,777777)
+    })
+  },
+  methods: {
+    addFn() {
+      this.showDialogForm = true
+    },
+
+    handleDelete(id) {
+      this.hanleDeleteAllPromise(id).then((ids) => {
+        getProductDelete(ids).then((res) => {
+          this.$successMsg('删除成功')
+          this.getList()
+        })
+      })
+    },
+    getList() {
+      this.listLoading = true
+      const params = {
+        pageNum: this.currentPage,
+        pageSize: this.pageSize,
+        k3CategoryNumber: this.screenForm.k3CategoryNumber,
+        endDate: this.screenForm.endDate,
+        materialName: this.screenForm.materialName,
+        materialNumber: this.screenForm.materialNumber,
+        materialOldNumber: this.screenForm.materialOldNumber,
+        saleTypeId: this.screenForm.saleTypeId,
+        specification: this.screenForm.specification,
+        startDate: this.screenForm.startDate,
+        remark: this.screenForm.remark,
+        billType:'HOME'
+      }
+      getProductPriceList(params).then((res) => {
+        this.dataList = res.data.records
+        console.log(res.data.records)
+        this.listTotal = res.data.total
+        this.listLoading = false
+      })
+      getTypeList(params).then((res) => {
+        this.ztypeList = res.data.records
+        // console.log(this.ztypeList, "type1111");
+      })
+    },
+    handleRevoke(id) {
+      handlePriceRevoke({ id }).then((res) => {
+        this.$successMsg('操作成功')
+        this.getList()
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-select--small {
+  width: 100%;
+}
+::v-deep .el-date-editor {
+  width: 100%;
+}
+</style>