|
|
|
|
@ -290,6 +290,107 @@
|
|
|
|
|
placeholder="请输入" |
|
|
|
|
/> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="指定办理单位" prop="departId"> |
|
|
|
|
<div class="flex gap"> |
|
|
|
|
<div style="width: 280px"> |
|
|
|
|
<depart-tree-select v-model="form.handleDepartId" /> |
|
|
|
|
</div> |
|
|
|
|
<div class="tips mt-10"> |
|
|
|
|
<p>指定具体办理单位 指将问题分派给哪个单位办理。</p> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item |
|
|
|
|
label="业务类别" |
|
|
|
|
prop="businessTypeCode" |
|
|
|
|
:rules="{ |
|
|
|
|
required: true, |
|
|
|
|
message: '请选择业务类别', |
|
|
|
|
trigger: ['blur'], |
|
|
|
|
}" |
|
|
|
|
> |
|
|
|
|
<el-select v-model="form.businessTypeCode" style="width: 280px"> |
|
|
|
|
<el-option |
|
|
|
|
v-for="item in dict.businessType" |
|
|
|
|
:key="item.id" |
|
|
|
|
:label="item.dictLabel" |
|
|
|
|
:value="item.dictValue" |
|
|
|
|
/> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item |
|
|
|
|
label="涉嫌问题" |
|
|
|
|
prop="involveProblem" |
|
|
|
|
:rules="{ |
|
|
|
|
required: true, |
|
|
|
|
message: '请选择涉嫌问题', |
|
|
|
|
trigger: ['blur'], |
|
|
|
|
}" |
|
|
|
|
> |
|
|
|
|
<el-select |
|
|
|
|
v-model="form.involveProblemCode" |
|
|
|
|
multiple |
|
|
|
|
@change="handleSelectInvolveProblem" |
|
|
|
|
clearable |
|
|
|
|
style="width: 280px" |
|
|
|
|
> |
|
|
|
|
<el-option |
|
|
|
|
v-for="item in dict.suspectProblem" |
|
|
|
|
:key="item.id" |
|
|
|
|
:label="item.dictLabel" |
|
|
|
|
:value="item.dictValue" |
|
|
|
|
/> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="涉及警种" prop="policeType"> |
|
|
|
|
<el-select |
|
|
|
|
v-model="form.policeType" |
|
|
|
|
clearable |
|
|
|
|
style="width: 280px" |
|
|
|
|
> |
|
|
|
|
<el-option |
|
|
|
|
v-for="item in dict.policeType" |
|
|
|
|
:key="item.id" |
|
|
|
|
:label="item.dictLabel" |
|
|
|
|
:value="item.dictValue" |
|
|
|
|
/> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
<div class="flex center mb-12"> |
|
|
|
|
<el-button |
|
|
|
|
@click="handleAddProblem()" |
|
|
|
|
plain |
|
|
|
|
type="primary" |
|
|
|
|
size="small" |
|
|
|
|
> |
|
|
|
|
<template #icon> |
|
|
|
|
<icon name="el-icon-Plus" /> |
|
|
|
|
</template> |
|
|
|
|
添加问题 |
|
|
|
|
</el-button> |
|
|
|
|
</div> |
|
|
|
|
<el-form-item |
|
|
|
|
label="问题类型" |
|
|
|
|
prop="" |
|
|
|
|
v-for="(item, index) in form.problems" |
|
|
|
|
:key="index" |
|
|
|
|
> |
|
|
|
|
<div class="flex v-center"> |
|
|
|
|
<problem-type-select v-model="item.threeLevelCode" /> |
|
|
|
|
<el-button |
|
|
|
|
plain |
|
|
|
|
type="danger" |
|
|
|
|
size="small" |
|
|
|
|
class="ml-20" |
|
|
|
|
@click="handleRemoveProblem(index)" |
|
|
|
|
> |
|
|
|
|
<template #icon> |
|
|
|
|
<icon name="el-icon-Delete" /> |
|
|
|
|
</template> |
|
|
|
|
删除问题 |
|
|
|
|
</el-button> |
|
|
|
|
</div> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item |
|
|
|
|
label="办理时限" |
|
|
|
|
prop="timeLimit" |
|
|
|
|
@ -305,6 +406,7 @@
|
|
|
|
|
v-model:maxExtensionDuration="form.maxExtensionDuration" |
|
|
|
|
/> |
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
<el-form-item |
|
|
|
|
label="下发流程" |
|
|
|
|
prop="distributionFlow" |
|
|
|
|
@ -410,6 +512,9 @@ const dict = catchStore.getDicts([
|
|
|
|
|
"timeLimit", |
|
|
|
|
"approvalFlow", |
|
|
|
|
"distributionFlow", |
|
|
|
|
"businessType", |
|
|
|
|
"suspectProblem", |
|
|
|
|
"policeType", |
|
|
|
|
]); |
|
|
|
|
|
|
|
|
|
const query = ref({ |
|
|
|
|
@ -488,7 +593,7 @@ const filterManualList = computed(() => {
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
const modelOptions = computed(() => { |
|
|
|
|
const items = filterManualList.value.map((item) => { |
|
|
|
|
const items = manualList.value.map((item) => { |
|
|
|
|
return { |
|
|
|
|
value: item.modelId, |
|
|
|
|
label: item.modelName, |
|
|
|
|
@ -515,10 +620,19 @@ function handleShowDistributeDialog() {
|
|
|
|
|
const form = ref({ |
|
|
|
|
modelClues: [], |
|
|
|
|
thingFiles: [], |
|
|
|
|
problems: [] |
|
|
|
|
}); |
|
|
|
|
const formRef = ref(null); |
|
|
|
|
const distributeShow = ref(false); |
|
|
|
|
|
|
|
|
|
function handleAddProblem() { |
|
|
|
|
form.value.problems.push({}) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function handleRemoveProblem(index) { |
|
|
|
|
form.value.problems.splice(index, 1) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
async function handleSubmitManuelModelClueTask() { |
|
|
|
|
await formRef.value.validate(); |
|
|
|
|
form.value.modelClues = filterManualList.value; |
|
|
|
|
@ -527,6 +641,7 @@ async function handleSubmitManuelModelClueTask() {
|
|
|
|
|
form.value = { |
|
|
|
|
modelClues: [], |
|
|
|
|
thingFiles: [], |
|
|
|
|
problems: [] |
|
|
|
|
}; |
|
|
|
|
distributeShow.value = false; |
|
|
|
|
manualShow.value = false; |
|
|
|
|
@ -551,7 +666,9 @@ const tableRef = ref();
|
|
|
|
|
function handleBathJoin() { |
|
|
|
|
const rows = tableRef.value.getSelectionRows(); |
|
|
|
|
rows.forEach((row) => { |
|
|
|
|
if (manualList.value.filter((item) => item.id === row.id).length === 0) { |
|
|
|
|
if ( |
|
|
|
|
manualList.value.filter((item) => item.id === row.id).length === 0 |
|
|
|
|
) { |
|
|
|
|
manualList.value.push(row); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|