| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269 |
- <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>
|