同步6/16

This commit is contained in:
Zy
2026-06-01 18:12:58 +08:00
parent 38274ab612
commit 50e7b14fd6
183 changed files with 8956 additions and 4803 deletions

View File

@@ -10,36 +10,54 @@
<span>投诉信息</span>
</div>
</template>
<div class="w-full h-full CarinfoBox">
<div class="carinfo_item">
<div class="label">投诉类型</div>
<div class="main">{{ form.type }}</div>
</div>
<div>
<div class="CarinfoBox">
<div class="carinfo_item">
<div class="label">投诉类型</div>
<div class="main">{{ form.type }}</div>
</div>
<div class="carinfo_item">
<div class="label">问题描述</div>
<div class="main">{{ form.problemDes }}</div>
</div>
<div class="carinfo_item">
<div class="label">投诉人姓名</div>
<div class="main">{{ form.complaintName }}</div>
</div>
<div class="carinfo_item">
<div class="label">投诉人姓名</div>
<div class="main">{{ form.complaintName }}</div>
</div>
<div class="carinfo_item">
<div class="label">手机号码</div>
<div class="main">{{ form.phone }}</div>
</div>
<div class="carinfo_item">
<div class="label">手机号码</div>
<div class="main">{{ form.phone }}</div>
</div>
<div class="carinfo_item">
<div class="label">投诉时间</div>
<div class="main">{{ form.createTime }}</div>
</div>
<div class="carinfo_item">
<div class="label">投诉时间</div>
<div class="main">{{ form.createTime }}</div>
<div class="carinfo_item">
<div class="label">处理状态</div>
<div class="main">
<DictTag :options="com_complaint_status" :value="form.status"></DictTag>
</div>
</div>
</div>
<div class="carinfo_item">
<div class="label">处理状态</div>
<div class="main">
<DictTag :options="com_complaint_status" :value="form.status"></DictTag>
<div class="CarinfoBox signle">
<div class="carinfo_item">
<div class="label">问题描述</div>
<div class="main">{{ form.problemDes }}</div>
</div>
</div>
<div class="CarinfoBox signle">
<div class="carinfo_item">
<div class="label">问题照片</div>
<div class="main">
<el-image
v-for="(item, index) in problemIamgeUrllist"
:key="index"
:src="item"
:preview-teleported="true"
:preview-src-list="problemIamgeUrllist"
style="width: 120px; height: 120px; margin-right: 10px"
></el-image>
</div>
</div>
</div>
</div>
@@ -57,11 +75,18 @@
<el-form ref="formRef" :rules="rules" class="m-auto" :inline="false" label-width="100px" :model="form">
<el-form-item label="处理状态" prop="status">
<el-radio-group v-model="form.status">
<el-radio v-for="(item, index) in com_complaint_status" :key="index" :value="item.value">{{ item.label }}</el-radio>
<!-- <el-radio v-for="(item, index) in com_complaint_status" :key="index" :value="item.value">{{ item.label }}</el-radio> -->
<el-radio value="1">处理完成</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="处理人员" prop="handleId">
<repairUser :userid="form.handleId" returnvalue="value" @change="handleChange"></repairUser>
<repairUser
:is-multiple="false"
:username="form.handleName"
:userid="form.handleId ?? ''"
returnvalue="*"
@change="handleChange"
></repairUser>
</el-form-item>
<el-form-item label="处理描述" prop="handleContent">
<el-input type="textarea" :rows="5" v-model="form.handleContent"></el-input>
@@ -104,10 +129,11 @@ const form = ref({
'createTime': null
});
const rules = {
status: [{ required: true, message: '选择投诉处理状态', trigger: 'blur' }]
status: [{ required: true, message: '选择投诉处理状态', trigger: 'blur' }],
handleContent: [{ required: true, message: '投诉处理内容不能为空', trigger: 'blur' }]
};
const userid = ref();
const complaintyTyplist = ref([]);
const problemIamgeUrllist = ref([]);
// ! 投诉 ====================================================================================================
async function init() {
const res2 = await listComplaintType();
@@ -116,6 +142,8 @@ async function init() {
...form.value,
...res.data
};
problemIamgeUrllist.value = res.data.problemImageUrl ? res.data.problemImageUrl.split(',') : [];
form.value.status = '1';
const find = res2.rows.find((item) => item.id === form.value.typeId);
if (find) {
form.value.type = find.name;
@@ -129,6 +157,7 @@ if (route.query.id) {
}
function handleChange(pop) {
console.log(pop);
form.value.handleId = pop.userId;
form.value.handleName = pop.nickName;
}
@@ -171,13 +200,21 @@ function handleBack() {
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(2, 1fr);
gap: 20px;
margin-bottom: 20px;
.carinfo_item {
display: flex;
align-items: center;
.label {
margin-right: 20px;
min-width: 60px;
}
}
&.signle {
grid-template-columns: repeat(1, 1fr);
grid-template-rows: repeat(1, 1fr);
}
}
.formbox {

View File

@@ -21,12 +21,11 @@
</el-card>
</div>
</transition>
<el-card class="flex-1" shadow="never">
<el-table v-loading="loading" border :data="complaintList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="投诉类型" align="center" prop="typeName" />
<el-table-column label="问题描述" align="center" prop="problemDes" />
<el-table-column label="问题描述" show-overflow-tooltip align="center" prop="problemDes" />
<el-table-column label="投诉人姓名" align="center" prop="complaintName" />
<el-table-column label="手机号" align="center" prop="phone" />
<el-table-column label="投诉时间" align="center" prop="createTime" />
@@ -113,10 +112,14 @@ const getList = async () => {
loading.value = true;
const res2 = await listComplaintType();
complaintyTyplist.value = res2.rows;
const res = await listComplaint(queryParams.value);
complaintList.value = res.rows;
total.value = res.total;
loading.value = false;
listComplaint(queryParams.value)
.then((res) => {
complaintList.value = res.rows;
total.value = res.total;
})
.finally(() => {
loading.value = false;
});
};
/** 搜索按钮操作 */