gaoluyang
2025-07-30 18a785bcfef2fc0f0ff8ccd48b7d1427547b51e4
1.售后处理-开发联调
已修改5个文件
167 ■■■■ 文件已修改
src/api/customerService/index.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/customerService/afterSalesHandling/components/formDia.vue 86 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/customerService/afterSalesHandling/index.vue 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/customerService/feedbackRegistration/components/formDia.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/customerService/feedbackRegistration/index.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/customerService/index.js
@@ -32,4 +32,12 @@
    method: 'post',
    data: query,
  })
}
// 反馈登记-提交处理
export function afterSalesServiceDispose(query) {
  return request({
    url: '/afterSalesService/dispose',
    method: 'post',
    data: query,
  })
}
src/views/customerService/afterSalesHandling/components/formDia.vue
@@ -2,7 +2,7 @@
  <div>
    <el-dialog
        v-model="dialogFormVisible"
        title="设备能耗"
        title="售后处理"
        width="70%"
        @close="closeDia"
    >
@@ -24,6 +24,7 @@
                                type="date"
                                placeholder="请选择"
                                clearable
                                disabled
                            />
                        </el-form-item>
                    </el-col>
@@ -33,6 +34,7 @@
                                v-model="form.checkUserId"
                                placeholder="请选择"
                                clearable
                                disabled
                            >
                                <el-option
                                    v-for="item in userList"
@@ -51,6 +53,7 @@
                                v-model="form.customerName"
                                placeholder="请输入"
                                clearable
                                disabled
                            />
                        </el-form-item>
                    </el-col>
@@ -60,11 +63,59 @@
                                v-model="form.proDesc"
                                placeholder="请输入"
                                clearable
                                disabled
                                type="textarea"
                            />
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row :gutter="30">
                    <el-col :span="24">
                        <el-form-item label="处理结果:" prop="disRes">
                            <el-input
                                v-model="form.disRes"
                                placeholder="请输入"
                                clearable
                                :disabled="operationType === 'view'"
                                type="textarea"
                            />
                        </el-form-item>
                    </el-col>
                </el-row>
            </el-form>
            <el-row :gutter="30">
                <el-col :span="12">
                    <el-form-item label="处理人:" prop="disposeUserId">
                        <el-select
                            v-model="form.disposeUserId"
                            placeholder="请选择"
                            clearable
                            disabled
                        >
                            <el-option
                                v-for="item in userList"
                                :key="item.userId"
                                :label="item.nickName"
                                :value="item.userId"
                            ></el-option>
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="处理时间:" prop="disDate">
                        <el-date-picker
                            style="width: 100%"
                            v-model="form.disDate"
                            value-format="YYYY-MM-DD"
                            format="YYYY-MM-DD"
                            type="date"
                            placeholder="请选择"
                            clearable
                            disabled
                        />
                    </el-form-item>
                </el-col>
            </el-row>
            <template #footer>
                <div class="dialog-footer">
                    <el-button type="primary" @click="submitForm">确认</el-button>
@@ -79,7 +130,7 @@
import {ref} from "vue";
import useUserStore from "@/store/modules/user.js";
import {userListNoPageByTenantId} from "@/api/system/user.js";
import {afterSalesServiceAdd, afterSalesServiceUpdate} from "@/api/customerService/index.js";
import {afterSalesServiceAdd, afterSalesServiceDispose, afterSalesServiceUpdate} from "@/api/customerService/index.js";
const { proxy } = getCurrentInstance()
const emit = defineEmits(['close'])
const dialogFormVisible = ref(false);
@@ -92,12 +143,18 @@
        checkUserId: "",
        customerName: "",
        proDesc: "",
        disposeUserId: "",
        disDate: "",
        disRes: "",
    },
    rules: {
        feedbackDate: [{required: true, message: "请选择", trigger: "change"}],
        checkUserId: [{required: true, message: "请选择", trigger: "change"}],
        customerName: [{required: true, message: "请输入", trigger: "blur"}],
        proDesc: [{required: true, message: "请输入", trigger: "blur"}],
        disRes: [{required: true, message: "请输入", trigger: "blur"}],
        disposeUserId: [{required: true, message: "请选择", trigger: "change"}],
        disDate: [{required: true, message: "请选择", trigger: "change"}],
    }
})
const { form, rules } = toRefs(data);
@@ -107,16 +164,12 @@
const openDialog = (type, row) => {
  operationType.value = type;
  dialogFormVisible.value = true;
    form.value = {}
    proxy.resetForm("formRef");
    form.value.checkUserId = userStore.id;
    form.value.feedbackDate = getCurrentDate();
    userListNoPageByTenantId().then((res) => {
        userList.value = res.data;
    });
    if (type === "edit") {
        form.value = {...row}
    }
    form.value = {...row}
    form.value.disposeUserId = userStore.id;
    form.value.disDate = getCurrentDate();
}
// const setName = (code) => {
//     const index = userList.value.findIndex(item => item.deviceModel === code);
@@ -128,17 +181,10 @@
const submitForm = () => {
    proxy.$refs["formRef"].validate(valid => {
        if (valid) {
            if (operationType.value === "add") {
                afterSalesServiceAdd(form.value).then(response => {
                    proxy.$modal.msgSuccess("新增成功")
                    closeDia()
                })
            } else {
                afterSalesServiceUpdate(form.value).then(response => {
                    proxy.$modal.msgSuccess("修改成功")
                    closeDia()
                })
            }
            afterSalesServiceDispose(form.value).then(response => {
                proxy.$modal.msgSuccess("新增成功")
                closeDia()
            })
        }
    })
}
src/views/customerService/afterSalesHandling/index.vue
@@ -2,22 +2,29 @@
    <div class="app-container">
        <div class="search_form">
            <div>
                <span class="search_title">设备名称:</span>
                <el-input
                    v-model="searchForm.name"
                    style="width: 240px"
                    placeholder="请输入"
                    @change="handleQuery"
                <span class="search_title">反馈日期:</span>
                <el-date-picker
                    v-model="searchForm.feedbackDate"
                    value-format="YYYY-MM-DD"
                    format="YYYY-MM-DD"
                    type="date"
                    placeholder="请选择"
                    clearable
                    :prefix-icon="Search"
                    @change="handleQuery"
                />
                <span class="search_title ml10">处理日期:</span>
                <el-date-picker
                    v-model="searchForm.disDate"
                    value-format="YYYY-MM-DD"
                    format="YYYY-MM-DD"
                    type="date"
                    placeholder="请选择"
                    clearable
                    @change="handleQuery"
                />
                <el-button type="primary" @click="handleQuery" style="margin-left: 10px"
                >搜索</el-button
                >
            </div>
            <div>
                <el-button type="primary" @click="openForm('add')">新增</el-button>
                <el-button type="danger" plain @click="handleDelete">删除</el-button>
            </div>
        </div>
        <div class="table_list">
@@ -39,7 +46,7 @@
<script setup>
import {Search} from "@element-plus/icons-vue";
import {onMounted, ref} from "vue";
import FormDia from "@/views/customerService/feedbackRegistration/components/formDia.vue";
import FormDia from "@/views/customerService/afterSalesHandling/components/formDia.vue";
import {ElMessageBox} from "element-plus";
import {afterSalesServiceDelete, afterSalesServiceListPage} from "@/api/customerService/index.js";
import useUserStore from "@/store/modules/user.js";
@@ -48,7 +55,8 @@
const data = reactive({
    searchForm: {
        name: "",
        feedbackDate: "",
        disDate: "",
    },
});
const { searchForm } = toRefs(data);
@@ -102,21 +110,43 @@
        width: 200,
    },
    {
        label: "处理人",
        prop: "disposeNickName",
    },
    {
        label: "处理结果",
        prop: "disRes",
        width: 200,
    },
    {
        label: "处理日期",
        prop: "disDate",
        width: 150,
    },
    {
        dataType: "action",
        label: "操作",
        align: "center",
        fixed: 'right',
        width: 120,
        operation: [
            {
                name: "编辑",
                name: "处理",
                type: "text",
                clickFun: (row) => {
                    openForm("edit", row);
                    openForm("approve", row);
                },
                disabled: (row) => {
                    return row.checkUserId !== userStore.id || row.status !== 1
                    return row.status !== 1
                }
            },
            {
                name: "查看",
                type: "text",
                clickFun: (row) => {
                    openForm("view", row);
                },
            },
        ],
    },
]);
src/views/customerService/feedbackRegistration/components/formDia.vue
@@ -2,7 +2,7 @@
  <div>
    <el-dialog
        v-model="dialogFormVisible"
        title="设备能耗"
        title="售后登记"
        width="70%"
        @close="closeDia"
    >
@@ -60,6 +60,7 @@
                                v-model="form.proDesc"
                                placeholder="请输入"
                                clearable
                                type="textarea"
                            />
                        </el-form-item>
                    </el-col>
src/views/customerService/feedbackRegistration/index.vue
@@ -4,13 +4,13 @@
            <div>
                <span class="search_title">反馈日期:</span>
                <el-date-picker
                    style="width: 100%"
                    v-model="searchForm.feedbackDate"
                    value-format="YYYY-MM-DD"
                    format="YYYY-MM-DD"
                    type="date"
                    placeholder="请选择"
                    clearable
                    @change="handleQuery"
                />
                <el-button type="primary" @click="handleQuery" style="margin-left: 10px"
                >搜索</el-button
@@ -166,6 +166,12 @@
const handleDelete = () => {
    let ids = [];
    if (selectedRows.value.length > 0) {
        // 检查是否有他人维护的数据
        const unauthorizedData = selectedRows.value.filter(item => item.checkUserId !== userStore.id);
        if (unauthorizedData.length > 0) {
            proxy.$modal.msgWarning("不可删除他人维护的数据");
            return;
        }
        ids = selectedRows.value.map((item) => item.id);
    } else {
        proxy.$modal.msgWarning("请选择数据");