|
|
|
@ -1,8 +1,8 @@ |
|
|
|
<template> |
|
|
|
<div class="plan-edit-page app_content"> |
|
|
|
<div class="plan-edit-page app_content" :class="{ 'is-readonly': isReadonly }"> |
|
|
|
<!-- 顶部导航 --> |
|
|
|
<!-- <van-nav-bar |
|
|
|
:title="isEdit ? '编辑计划' : '新增计划'" |
|
|
|
:title="isReadonly ? '计划详情' : (isEdit ? '编辑计划' : '新增计划')" |
|
|
|
left-arrow |
|
|
|
@click-left="onBack" |
|
|
|
/> --> |
|
|
|
@ -24,9 +24,9 @@ |
|
|
|
<!-- 表单 --> |
|
|
|
<div class="form-card"> |
|
|
|
<!-- 计划类别 --> |
|
|
|
<van-field name="planType" label="计划类别" required> |
|
|
|
<van-field name="planType" label="计划类别" :required="!isReadonly"> |
|
|
|
<template #input> |
|
|
|
<van-radio-group v-model="form.planType" direction="horizontal"> |
|
|
|
<van-radio-group v-model="form.planType" direction="horizontal" :disabled="isReadonly"> |
|
|
|
<van-radio :name="1">日常计划</van-radio> |
|
|
|
<van-radio :name="2">专项计划</van-radio> |
|
|
|
</van-radio-group> |
|
|
|
@ -38,17 +38,17 @@ |
|
|
|
v-model="planDateDisplay" |
|
|
|
label="计划时间" |
|
|
|
placeholder="请选择时间" |
|
|
|
required |
|
|
|
:required="!isReadonly" |
|
|
|
readonly |
|
|
|
:is-link="!isPrefillMode" |
|
|
|
:disabled="isPrefillMode" |
|
|
|
@click="!isPrefillMode && (showDatePicker = true)" |
|
|
|
:is-link="!isPrefillMode && !isReadonly" |
|
|
|
:disabled="isPrefillMode || isReadonly" |
|
|
|
@click="!isPrefillMode && !isReadonly && (showDatePicker = true)" |
|
|
|
/> |
|
|
|
|
|
|
|
<!-- 执行时段 --> |
|
|
|
<van-field name="planTime" label="执行时段" required :disabled="isPrefillMode"> |
|
|
|
<van-field name="planTime" label="执行时段" :required="!isReadonly" :disabled="isPrefillMode || isReadonly"> |
|
|
|
<template #input> |
|
|
|
<van-radio-group v-model="form.planTime" direction="horizontal" :disabled="isPrefillMode"> |
|
|
|
<van-radio-group v-model="form.planTime" direction="horizontal" :disabled="isPrefillMode || isReadonly"> |
|
|
|
<van-radio :name="1">上午(9:00-12:00)</van-radio> |
|
|
|
<van-radio :name="2">下午(14:00-18:00)</van-radio> |
|
|
|
<van-radio :name="3">其他(18:00-21:00)</van-radio> |
|
|
|
@ -62,18 +62,19 @@ |
|
|
|
label="执法事项" |
|
|
|
type="textarea" |
|
|
|
placeholder="请输入执法事项" |
|
|
|
required |
|
|
|
:required="!isReadonly" |
|
|
|
:maxlength="1000" |
|
|
|
show-word-limit |
|
|
|
rows="3" |
|
|
|
autosize |
|
|
|
:disabled="isReadonly" |
|
|
|
/> |
|
|
|
|
|
|
|
<!-- 执法单位 --> |
|
|
|
<van-field |
|
|
|
v-model="form.bureauDeptName" |
|
|
|
label="执法单位" |
|
|
|
required |
|
|
|
:required="!isReadonly" |
|
|
|
readonly |
|
|
|
/> |
|
|
|
|
|
|
|
@ -82,15 +83,15 @@ |
|
|
|
v-model="form.enterpriseName" |
|
|
|
label="企业名称" |
|
|
|
placeholder="请选择企业" |
|
|
|
required |
|
|
|
:required="!isReadonly" |
|
|
|
readonly |
|
|
|
:is-link="!isPrefillMode" |
|
|
|
:disabled="isPrefillMode" |
|
|
|
@click="!isPrefillMode && onOpenEnterprisePicker()" |
|
|
|
:is-link="!isPrefillMode && !isReadonly" |
|
|
|
:disabled="isPrefillMode || isReadonly" |
|
|
|
@click="!isPrefillMode && !isReadonly && onOpenEnterprisePicker()" |
|
|
|
/> |
|
|
|
|
|
|
|
<!-- 执法人员 --> |
|
|
|
<van-field label="执法人员" required> |
|
|
|
<van-field label="执法人员" :required="!isReadonly"> |
|
|
|
<template #input> |
|
|
|
<div class="person-box"> |
|
|
|
<div |
|
|
|
@ -101,13 +102,13 @@ |
|
|
|
<span class="person-name">{{ person.name }}</span> |
|
|
|
<span class="person-phone">{{ person.phone }}</span> |
|
|
|
<van-icon |
|
|
|
v-if="personList.length > 1 && person.phone !== useCommon.phonenumber" |
|
|
|
v-if="!isReadonly && personList.length > 1 && person.phone !== useCommon.phonenumber" |
|
|
|
name="close" |
|
|
|
class="person-remove" |
|
|
|
@click="removePerson(index)" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<div class="add-person-line" @click="onAddPerson"> |
|
|
|
<div v-if="!isReadonly" class="add-person-line" @click="onAddPerson"> |
|
|
|
<span class="placeholder-text">请输入</span> |
|
|
|
<van-icon name="add-o" color="#2382cf" size="20" /> |
|
|
|
</div> |
|
|
|
@ -116,9 +117,9 @@ |
|
|
|
</van-field> |
|
|
|
|
|
|
|
<!-- 是否公开 --> |
|
|
|
<van-field name="isPublic" label="是否公开" required :disabled="isPrefillMode"> |
|
|
|
<van-field name="isPublic" label="是否公开" :required="!isReadonly" :disabled="isPrefillMode || isReadonly"> |
|
|
|
<template #input> |
|
|
|
<van-radio-group v-model="form.isPublic" direction="horizontal" :disabled="isPrefillMode"> |
|
|
|
<van-radio-group v-model="form.isPublic" direction="horizontal" :disabled="isPrefillMode || isReadonly"> |
|
|
|
<van-radio :name="1">是</van-radio> |
|
|
|
<van-radio :name="0">否</van-radio> |
|
|
|
</van-radio-group> |
|
|
|
@ -126,9 +127,9 @@ |
|
|
|
</van-field> |
|
|
|
|
|
|
|
<!-- 参与联合 --> |
|
|
|
<van-field name="isUnion" label="参与联合" required :disabled="isPrefillMode"> |
|
|
|
<van-field name="isUnion" label="参与联合" :required="!isReadonly" :disabled="isPrefillMode || isReadonly"> |
|
|
|
<template #input> |
|
|
|
<van-radio-group v-model="form.isUnion" direction="horizontal" :disabled="isPrefillMode"> |
|
|
|
<van-radio-group v-model="form.isUnion" direction="horizontal" :disabled="isPrefillMode || isReadonly"> |
|
|
|
<van-radio :name="1">是</van-radio> |
|
|
|
<van-radio :name="0">否</van-radio> |
|
|
|
</van-radio-group> |
|
|
|
@ -137,7 +138,7 @@ |
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- 提交按钮 --> |
|
|
|
<div class="submit-wrap"> |
|
|
|
<div class="submit-wrap" v-if="!isReadonly"> |
|
|
|
<van-button |
|
|
|
type="primary" |
|
|
|
block |
|
|
|
@ -258,6 +259,8 @@ const route = useRoute(); |
|
|
|
const {useCommon} = $globalStore; |
|
|
|
|
|
|
|
const isEdit = computed(() => !!route.query.id); |
|
|
|
// 是否为只读查看模式 |
|
|
|
const isReadonly = computed(() => route.query.readonly === '1'); |
|
|
|
// 是否为预填模式(从其他计划页面点击"添加计划"跳转过来) |
|
|
|
const isPrefillMode = computed(() => !isEdit.value && !!route.query.prefillPlanDate); |
|
|
|
const showNotice = ref(true); |
|
|
|
@ -700,6 +703,7 @@ const validate = () => { |
|
|
|
|
|
|
|
// 提交(reserveStatus 固定=1,草稿功能暂不实现) |
|
|
|
const onSubmit = () => { |
|
|
|
if (isReadonly.value) return; |
|
|
|
if (!validate()) return; |
|
|
|
|
|
|
|
// 检柡是否需要确认Dialog |
|
|
|
@ -1056,4 +1060,44 @@ const doSubmit = () => { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/* 只读模式样式优化 */ |
|
|
|
.plan-edit-page.is-readonly { |
|
|
|
.form-card { |
|
|
|
:deep(.van-field) { |
|
|
|
background: #f7f8fa; |
|
|
|
} |
|
|
|
|
|
|
|
:deep(.van-field__control) { |
|
|
|
color: #969799; |
|
|
|
-webkit-text-fill-color: #969799; |
|
|
|
} |
|
|
|
|
|
|
|
:deep(.van-field__control::placeholder) { |
|
|
|
color: #c8c9cc; |
|
|
|
} |
|
|
|
|
|
|
|
:deep(.van-radio) { |
|
|
|
&--disabled { |
|
|
|
opacity: 0.5; |
|
|
|
} |
|
|
|
|
|
|
|
.van-radio__label { |
|
|
|
color: #969799; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
:deep(.van-radio__icon) { |
|
|
|
&--disabled { |
|
|
|
background: #ebedf0; |
|
|
|
border-color: #dcdee0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.person-line .person-name, |
|
|
|
.person-line .person-phone { |
|
|
|
color: #969799; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
</style> |
|
|
|
|