Kaynağa Gözat

Merge branch 'master' of http://git.echepei.com/tire-platform/tire-platform-ui

Qukatie 11 saat önce
ebeveyn
işleme
30b0ab063e

+ 49 - 0
src/api/tirePartsMall/basicData/customerInformation/customerReviewed.js

@@ -0,0 +1,49 @@
+import request from '@/router/axios';
+
+
+export function getCustomerReviewedParam() {
+    return request({
+        url: '/api/blade-sales-part/corpsDesc/getCustomerReviewedParam',
+        method: 'post'
+    })
+}
+
+export function submitCustomerReviewedParam(data) {
+    return request({
+        url: '/api/blade-sales-part/corpsDesc/submitCustomerReviewedParam',
+        method: 'post',
+        data: data
+    })
+}
+
+export function getWarehouseList(data) {
+    return request({
+        url: '/api/blade-sales-part/storageDesc/listAll',
+        method: 'get',
+        params: data
+    })
+}
+
+
+export function getPriceList() {
+    return request({
+        url: '/api/blade-system/dict-biz/dictionary?code=mall_price',
+        method: 'get'
+    })
+}
+
+export function getSalesUserList() {
+    return request({
+        url: '/api/blade-user/salerList',
+        method: 'get'
+    })
+}
+
+
+export const getCorpType = (data) => {
+    return request({
+        url: '/api/blade-sales-part/corpstype/tree',
+        method: 'get',
+        params: data
+    })
+}

+ 269 - 0
src/views/tirePartsMall/basicData/customerInformation/customerReviewedParamForm.vue

@@ -0,0 +1,269 @@
+<template>
+    <el-dialog
+        title="客户无需审批信息维护"
+        :visible.sync="visible"
+        width="500px"
+        @close="handleClose"
+        append-to-body
+        :close-on-click-modal="false"
+    >
+        <el-form
+            ref="formRef"
+            :model="form"
+            :rules="rules"
+            label-width="100px"
+            size="small"
+        >
+            <el-form-item label="客户分类" prop="corpsTypeId" required>
+                <el-select v-model="form.corpsTypeId" placeholder="请选择客户分类" style="width: 100%">
+                    <el-option
+                        v-for="item in corpsTypeOptions"
+                        :key="item.value"
+                        :label="item.title"
+                        :value="item.value"
+                    />
+                </el-select>
+            </el-form-item>
+            <el-form-item label="价格类型" prop="priceType" required>
+                <el-select v-model="form.priceType" placeholder="请选择价格类型" style="width: 100%">
+                    <el-option
+                        v-for="item in priceTypeOptions"
+                        :key="item.value"
+                        :label="item.label"
+                        :value="item.value"
+                    />
+                </el-select>
+            </el-form-item>
+
+            <el-form-item label="仓库" prop="warehouseId" required>
+                <el-select
+                    v-model="form.warehouseId"
+                    filterable
+                    reserve-keyword
+                    placeholder="请输入仓库名称搜索"
+                    :loading="warehouseLoading"
+                    style="width: 100%"
+                    @change="handleWarehouseChange"
+                >
+                    <el-option
+                        v-for="item in warehouseOptions"
+                        :key="item.id"
+                        :label="item.name"
+                        :value="item.id"
+                    />
+                </el-select>
+            </el-form-item>
+
+            <el-form-item label="业务员" prop="salesMan" required>
+                <el-select
+                    v-model="form.salesMan"
+                    filterable
+                    reserve-keyword
+                    placeholder="请输入业务员姓名搜索"
+                    :loading="salesmanLoading"
+                    style="width: 100%"
+                    @change="handleSalesmanChange"
+                >
+                    <el-option
+                        v-for="item in salesmanOptions"
+                        :key="item.id"
+                        :label="item.name"
+                        :value="item.id"
+                    />
+                </el-select>
+            </el-form-item>
+
+            <!-- 启用开关 -->
+            <el-form-item label="是否启用">
+                <el-switch
+                    v-model="form.enabled"
+                    active-text="启用"
+                    inactive-text="禁用"
+                    :active-value="true"
+                    :inactive-value="false"
+                />
+            </el-form-item>
+        </el-form>
+
+        <span slot="footer" class="dialog-footer">
+      <el-button size="small" @click="visible = false">取消</el-button>
+      <el-button type="primary" size="small" @click="handleSubmit" :loading="submitting">确定</el-button>
+    </span>
+    </el-dialog>
+</template>
+
+<script>
+import {
+    getCustomerReviewedParam,
+    submitCustomerReviewedParam,
+    getWarehouseList,
+    getPriceList,
+    getSalesUserList,
+    getCorpType
+} from "../../../../api/tirePartsMall/basicData/customerInformation/customerReviewed";
+
+
+export default {
+    name: "CustomerReviewedParamForm",
+    data() {
+        return {
+            visible: false,
+            submitting: false,
+
+            // 表单数据
+            form: {
+                priceType: "",
+                corpsTypeId: null,
+                warehouseId: null,
+                warehouseName: "",
+                salesMan: null,
+                salesManName: "",
+                enabled: true // true 表示启用,false 表示禁用
+            },
+
+            // 校验规则
+            rules: {
+                corpsTypeId: [{ required: true, message: "请选择客户分类", trigger: "change" }],
+                priceType: [{ required: true, message: "请选择价格类型", trigger: "change" }],
+                warehouseId: [{ required: true, message: "请选择仓库", trigger: "change" }],
+                salesMan: [{ required: true, message: "请选择业务员", trigger: "change" }]
+            },
+
+            // 下拉选项
+            priceTypeOptions: [
+                { value: "FIXED", label: "固定价" },
+                { value: "FLOAT", label: "浮动价" },
+                { value: "NEGOTIATE", label: "议价" }
+                // 可根据实际枚举扩展
+            ],
+            warehouseOptions: [],
+            salesmanOptions: [],
+            corpsTypeOptions: [],
+            warehouseLoading: false,
+            salesmanLoading: false
+        };
+    },
+    created() {
+
+        this.getPriceDataList();
+        this.searchWarehouses();
+        this.searchSalesmen();
+        this.getCorpTypeDataList();
+    },
+    methods: {
+        getCorpTypeDataList() {
+            getCorpType({ corpType: "KH" }).then(res => {
+                this.corpsTypeOptions = res.data.data;
+            });
+        },
+        getDetail() {
+            getCustomerReviewedParam().then(res => {
+                this.open(res.data.data);
+            });
+        },
+        // 打开弹窗并初始化数据
+        open(data = {}) {
+            this.visible = true;
+            this.$nextTick(() => {
+                this.$refs.formRef.resetFields();
+                this.form = {
+                    id: data.id || "",
+                    priceType: data.priceType || "",
+                    corpsTypeId: data.corpsTypeId || null,
+                    warehouseId: data.warehouseId || null,
+                    warehouseName: data.warehouseName || "",
+                    salesMan: data.salesMan || null,
+                    salesManName: data.salesManName || "",
+                    version: data.version || "",
+                    enabled: data.isDeleted === 0
+                };
+            });
+        },
+
+        // 搜索仓库
+        searchWarehouses() {
+            this.warehouseLoading = true;
+            getWarehouseList().then(res => {
+                this.warehouseOptions = (res.data.data || []).map(item => ({
+                    id: item.id,
+                    name: item.cname
+                }));
+            })
+                .finally(() => {
+                    this.warehouseLoading = false;
+                });
+        },
+        getPriceDataList() {
+            getPriceList().then(res => {
+                this.priceTypeOptions = res.data.data.map(item => ({
+                    value: item.dictValue,
+                    label: item.dictKey
+                }));
+            });
+        },
+        // 仓库选择后更新名称(可选,用于展示)
+        handleWarehouseChange(val) {
+            const selected = this.warehouseOptions.find(w => w.id === val);
+            this.form.warehouseName = selected ? selected.name : "";
+        },
+
+        // 搜索业务员
+        searchSalesmen() {
+            this.salesmanLoading = true;
+            getSalesUserList().then(res => {
+                this.salesmanOptions = (res.data.data || []).map(user => ({
+                    id: user.id,
+                    name: user.name
+                }));
+            })
+                .finally(() => {
+                    this.salesmanLoading = false;
+                });
+        },
+
+        // 业务员选择后更新名称
+        handleSalesmanChange(val) {
+            const selected = this.salesmanOptions.find(u => u.id === val);
+            this.form.salesManName = selected ? selected.name : "";
+        },
+
+        // 提交
+        handleSubmit() {
+            this.$refs.formRef.validate(valid => {
+                if (!valid) return;
+                this.submitting = true;
+                const submitData = {
+                    id: this.form.id,
+                    priceType: this.form.priceType,
+                    corpsTypeId: this.form.corpsTypeId,
+                    warehouseId: this.form.warehouseId,
+                    warehouseName: this.form.warehouseName,
+                    salesMan: this.form.salesMan,
+                    salesManName: this.form.salesManName,
+                    version: this.form.version,
+                    isDeleted: this.form.enabled ? 0 : 1
+                };
+                submitCustomerReviewedParam(submitData).then(res => {
+                    this.$message.success("保存成功");
+                    this.submitting = false;
+                    this.visible = false;
+                }).finally(() => {
+                    this.submitting = false;
+                });
+            });
+        },
+
+        // 关闭时重置
+        handleClose() {
+            this.$emit("close");
+        }
+    }
+};
+</script>
+
+<style scoped>
+/* 可选样式 */
+.dialog-footer {
+    text-align: right;
+}
+</style>

+ 16 - 4
src/views/tirePartsMall/basicData/customerInformation/index.vue

@@ -27,6 +27,7 @@
               </el-button>
                 <el-button type="primary" size="mini" icon="el-icon-download" @click="brandBox = true">Excel更新品牌
                 </el-button>
+                <el-button type="primary" v-if="openParam" size="mini" @click="openForm">客户审核信息配置</el-button>
             </template>
             <template slot="enableOrNot" slot-scope="{row,index,disabled}">
               <div v-if="row.enableOrNot === 1">启用</div>
@@ -104,24 +105,24 @@
           温馨提示 第一次导入时请先下载模板
       </p>
     </el-dialog>
+      <customer-reviewed-param-form  ref="paramForm"></customer-reviewed-param-form>
   </div>
 </template>
 
 <script>
 import detailsPage from "./detailsPage";
 import { option } from "./js/optionList";
-import {customerListAll} from '@/api/tirePartsMall/basicData/warehouse'
-import {getBrandDesc} from "@/api/tirePartsMall/basicData/customerInformation"
 import {
   getList,
   getCorpType,
-  pageStatistics,
   remove,
   customerList,
     submit
 } from "@/api/tirePartsMall/basicData/customerInformation";
 import corpType from './components/index.vue'
 import { getToken } from "@/util/auth";
+import customerReviewedParamForm from "./customerReviewedParamForm.vue";
+import { isProcurement } from "@/api/basicData/configuration";
 
 export default {
   name: "index",
@@ -319,11 +320,13 @@ export default {
       hostUrl: '',
       option: {},
       roleName:null,
+        openParam: false
     };
   },
   components: {
     detailsPage,
-    corpType
+    corpType,
+      customerReviewedParamForm
   },
   activated() {
     setTimeout(() => {
@@ -347,6 +350,12 @@ export default {
         this.getAllWorkDicts()
         this.$refs.crud.$refs.dialogColumn.columnBox = false;
       }
+
+      isProcurement({ param: "customer_not_reviewed" }).then(res => {
+          if (res.data.data == 1) {
+              this.openParam = true
+          }
+      });
   },
   mounted() {
       // 页面尺寸改变,重新渲染avue表格,避免表格错位
@@ -363,6 +372,9 @@ export default {
       )
     },
   methods: {
+      openForm() {
+          this.$refs.paramForm.getDetail();
+      },
     // 导入客户
     derivation() {
       window.open(