Commit d77fd6a0 authored by 赵啸非's avatar 赵啸非

Merge remote-tracking branch 'origin/master'

parents 943fb47b 52ea8818
...@@ -46,7 +46,8 @@ ...@@ -46,7 +46,8 @@
"vue-resource": "^1.5.2", "vue-resource": "^1.5.2",
"vue-router": "^3.3.4", "vue-router": "^3.3.4",
"vuedraggable": "^2.23.2", "vuedraggable": "^2.23.2",
"vuex": "^3.4.0" "vuex": "^3.4.0",
"vuex-persistedstate": "^4.1.0"
}, },
"devDependencies": { "devDependencies": {
"@ant-design/colors": "^4.0.1", "@ant-design/colors": "^4.0.1",
......
...@@ -90,6 +90,22 @@ export default { ...@@ -90,6 +90,22 @@ export default {
popContainer() { popContainer() {
return document.getElementById("popContainer"); return document.getElementById("popContainer");
}, },
// 刷新保存
// readVueXData() {
// window.addEventListener("beforeunload", () => {
// sessionStorage.setItem("store", JSON.stringify(this.$store.state));
// });
// if (sessionStorage.getItem("store")) {
// this.$store.replaceState(
// Object.assign(
// {},
// this.$store.state,
// JSON.parse(sessionStorage.getItem("store"))
// )
// );
// sessionStorage.removeItem("store");
// }
// },
}, },
}; };
</script> </script>
......
<template> <template>
<div class="previe-modal" v-if="Visible" @click="Visible = false"> <div class="previe-modal" v-if="Visible" @click="Visible = false">
<img @click.stop v-if="previeData.type === 'img'" :src="previeData.url" /> <img @click.stop v-if="previewData.type === 'img'" :src="previewData.url" />
<video <video
@click.stop @click.stop
v-else v-else
:src="previeData.url" :src="previewData.url"
autoplay autoplay
muted muted
controls controls
...@@ -16,14 +16,14 @@ ...@@ -16,14 +16,14 @@
<script> <script>
export default { export default {
props: { props: {
previeData: { previewData: {
type: Object, type: Object,
required: true, required: true,
default: () => { default: () => {
return {}; return {};
}, },
}, },
previeVisible: { previewVisible: {
type: Boolean, type: Boolean,
required: true, required: true,
default: false, default: false,
...@@ -32,10 +32,10 @@ export default { ...@@ -32,10 +32,10 @@ export default {
computed: { computed: {
Visible: { Visible: {
get() { get() {
return this.previeVisible; return this.previewVisible;
}, },
set(val) { set(val) {
this.$emit("update:previeVisible", val); this.$emit("update:previewVisible", val);
}, },
}, },
}, },
......
<template> <template>
<div class="addbusiness ff"> <div class="addmatter">
<div class="back_btn" @click="handleBack">返回上一级</div>
<a-tabs default-active-key="1"> <a-tabs default-active-key="1">
<a-tab-pane key="1" tab="基本信息" class="box"> <div slot="tabBarExtraContent">
<a-space>
<a-button @click="handleManage">返回事项列表</a-button>
<a-button @click="handleBack">返回概要列表</a-button>
</a-space>
</div>
<a-tab-pane key="1" tab="基本信息">
<BaseMessage /> <BaseMessage />
</a-tab-pane> </a-tab-pane>
...@@ -68,6 +73,10 @@ export default { ...@@ -68,6 +73,10 @@ export default {
mounted() {}, mounted() {},
methods: { methods: {
// 返回管理页面
handleManage() {
this.$router.push("/business");
},
// 返回上一级 // 返回上一级
handleBack() { handleBack() {
this.$router.back(); this.$router.back();
...@@ -79,19 +88,14 @@ export default { ...@@ -79,19 +88,14 @@ export default {
}; };
</script> </script>
<style lang='less' scoped> <style lang='less' scoped>
.addbusiness { .addmatter {
position: relative; width: 100%;
height: 100%; height: auto;
padding-left: 10px; padding-left: 10px;
.back_btn { padding-right: 10px;
position: absolute; background-color: #fff;
top: 8px; }
right: 20px; /deep/.ant-tabs-nav-container {
border-radius: 4px; border-bottom: 1px solid #f0f0f0 !important;
padding: 6px 8px;
border: 1px solid rgba(221, 221, 221, 1);
z-index: 100;
cursor: pointer;
}
} }
</style> </style>
\ No newline at end of file
<template>
<!-- 事项概要 -->
<div class="synopsis">
<a-tabs default-active-key="1">
<a-button slot="tabBarExtraContent" @click="handleBack"
>返回上一级</a-button
>
<a-tab-pane key="1" tab="事项概要信息">
<AddSynopsis></AddSynopsis>
</a-tab-pane>
</a-tabs>
</div>
</template>
<script>
import AddSynopsis from "./components/AddSynopsis.vue";
export default {
components: {
AddSynopsis,
},
data() {
return {};
},
methods: {
// 返回上一级
handleBack() {
this.$router.back();
},
},
};
</script>
<style lang="less" scoped>
.synopsis {
height: auto;
width: 100%;
padding: 0px 10px;
}
/deep/.ant-tabs-nav-container {
border-bottom: 1px solid #f0f0f0 !important;
}
</style>
\ No newline at end of file
<template>
<!-- 新增事项概要 -->
<div class="addsynopsis">
<a-form-model
:model="baseform"
:label-col="labelCol"
:wrapper-col="wrapperCol"
ref="form"
:rules="rules"
>
<!-- 基本信息 -->
<div class="flex jcb aic">
<div class="color_title">基本信息</div>
<div class="more primary" @click="checkMore">完善更多信息>></div>
</div>
<a-row>
<a-col :span="8">
<a-form-model-item label="事项名称" prop="matterName">
<a-input
v-model="baseform.matterName"
placeholder="请输入事项名称"
/>
</a-form-model-item>
</a-col>
<a-col :span="8">
<a-form-model-item label="英文名" prop="englishName">
<a-input
v-model="baseform.englishName"
placeholder="请输入事项英文名称"
/>
</a-form-model-item>
</a-col>
<a-col :span="8">
<a-form-model-item label="事项编号" prop="matterNo">
<a-input v-model="baseform.matterNo" placeholder="请输入事项编号" />
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col :span="8">
<a-form-model-item label="排序" prop="sort">
<a-input v-model="baseform.sort" placeholder="请输入序号" />
</a-form-model-item>
</a-col>
<a-col :span="8">
<a-form-model-item label="所属部门" prop="deptCode">
<a-select
showSearch
v-model="baseform.deptCode"
optionFilterProp="label"
placeholder="请选择部门"
>
<a-select-option
v-for="v in deptData"
:key="v.id"
:value="v.deptNumber"
:label="v.name"
>
{{ v.name }}</a-select-option
>
</a-select>
</a-form-model-item>
</a-col>
<a-col :span="8">
<a-form-model-item label="是否收费" prop="isChargesShow">
<a-radio-group v-model="baseform.isChargesShow">
<a-radio
:value="key"
v-for="(v, key) in matterDict.isChargesShow"
:key="v"
>{{ v }}</a-radio
>
</a-radio-group>
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col :span="8">
<a-form-model-item label="法定办结时限" props="legalTimeLimitShow">
<a-input-group compact>
<a-select
style="width: 30%"
v-model="isTimely"
placeholder="请选择"
>
<a-select-option value="1">即办</a-select-option>
<a-select-option value="2">工作日 </a-select-option>
</a-select>
<a-input-number
v-model="baseform.legalTimeLimitShow"
:disabled="isTimely !== '2'"
placeholder="请输入工作日数"
:min="1"
style="width: 70%"
/>
</a-input-group>
</a-form-model-item>
</a-col>
<a-col :span="8">
<a-form-model-item label="承诺办结时限" props="promiseTimeLimitShow">
<a-input-group compact>
<a-select
style="width: 30%"
v-model="isPromise"
placeholder="请选择"
>
<a-select-option value="1">即办</a-select-option>
<a-select-option value="2">工作日 </a-select-option>
</a-select>
<a-input-number
v-model="baseform.promiseTimeLimitShow"
:disabled="isPromise !== '2'"
placeholder="请输入工作日数"
:min="1"
style="width: 70%"
/>
</a-input-group>
</a-form-model-item>
</a-col>
<a-col :span="8">
<a-form-model-item
label="认证等级需求"
prop="certificationLevelsShow"
>
<a-select
v-model="baseform.certificationLevelsShow"
placeholder="请选择认证等级需求"
>
<a-select-option
v-for="(v, key) in matterDict.certificationLevelsShow"
:key="v"
:value="key"
>{{ v }}</a-select-option
>
</a-select>
</a-form-model-item>
</a-col>
</a-row>
<!-- 窗口办理 -->
<div class="flex jcb aic">
<div class="color_title">窗口办理</div>
<div class="more primary" @click="checkMore">完善更多信息>></div>
</div>
<a-row>
<a-col :span="8">
<a-form-model-item label="到现场次数" prop="windowToTheSceneNum">
<a-input
v-model="baseform.windowToTheSceneNum"
placeholder="请输入到现场次数"
>
<span slot="suffix"></span>
</a-input>
</a-form-model-item>
</a-col>
</a-row>
<!-- 网上办理 -->
<div class="flex jcb aic">
<div class="color_title">网上办理</div>
<div class="more primary">完善更多信息>></div>
</div>
<a-row>
<a-col :span="8">
<a-form-model-item label="网办类型" prop="onlineType">
<a-select
v-model="baseform.onlineType"
placeholder="请选择网办类型"
>
<a-select-option
v-for="(v, key) in matterDict.onlineType"
:key="v"
:value="key"
>{{ v }}</a-select-option
>
</a-select>
</a-form-model-item>
</a-col>
</a-row>
<!-- 常规信息 -->
<div class="flex jcb aic">
<div class="color_title">常规信息</div>
<div class="more primary" @click="checkMore">完善更多信息>></div>
</div>
<a-row>
<a-col :span="8">
<a-form-model-item label="实施主体" prop="performDeptType">
<a-input
v-model="baseform.performDeptType"
placeholder="请输入实施主体"
/>
</a-form-model-item>
</a-col>
<a-col :span="8">
<a-form-model-item label="事项类型" prop="eventTypeShow">
<a-select
v-model="baseform.eventTypeShow"
placeholder="请选择事项类型"
>
<a-select-option
v-for="(v, key) in matterDict.eventTypeShow"
:key="v"
:value="key"
>{{ v }}</a-select-option
>
</a-select>
</a-form-model-item>
</a-col>
<a-col :span="8">
<a-form-model-item label="联办机构" props="jointInfoShow">
<a-input-group compact>
<a-select
style="width: 30%"
v-model="isLinked"
placeholder="请选择"
>
<a-select-option value="1"></a-select-option>
<a-select-option value="2"></a-select-option>
</a-select>
<a-select
v-model="baseform.jointInfoShow"
:disabled="isLinked !== '2'"
placeholder="请选择联办机构"
style="width: 70%"
>
<a-select-option
v-for="{ v, key } in matterDict.jointInfoShowItem"
:key="v"
:value="key"
>{{ v }}</a-select-option
>
</a-select>
</a-input-group>
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col :span="8">
<a-form-model-item label="行使层级" prop="performHierarchyShow">
<a-select
v-model="baseform.performHierarchyShow"
placeholder="请选择行使层级"
>
<a-select-option
v-for="(v, key) in matterDict.performHierarchyShow"
:key="v"
:value="key"
>{{ v }}</a-select-option
>
</a-select>
</a-form-model-item>
</a-col>
<a-col :span="8">
<a-form-model-item label="主题类型" prop="type">
<a-select v-model="baseform.type" placeholder="请选择主题类型">
<a-select-option
v-for="(v, key) in matterDict.type"
:key="v"
:value="key"
>{{ v }}</a-select-option
>
</a-select>
</a-form-model-item>
</a-col>
<a-col :span="8">
<a-form-model-item label="办理时间" prop="operateTime">
<a-input
v-model="baseform.operateTime"
placeholder="请输入办理时间"
/>
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col :span="8">
<a-form-model-item label="办理地点" prop="operateSite">
<a-textarea
v-model="baseform.operateSite"
:auto-size="{ minRows: 5, maxRows: 5 }"
placeholder="请输入办理地点"
/>
</a-form-model-item>
</a-col>
<a-col :span="8">
<a-form-model-item label="咨询方式" prop="cousultingShow">
<a-textarea
v-model="baseform.cousultingShow"
:auto-size="{ minRows: 5, maxRows: 5 }"
placeholder="请输入咨询方式"
/>
</a-form-model-item>
</a-col>
<a-col :span="8">
<a-form-model-item label="监督投诉方式" prop="superviseShow">
<a-textarea
v-model="baseform.superviseShow"
:auto-size="{ minRows: 5, maxRows: 5 }"
placeholder="请输入监督投诉方式"
/>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<div class="btn_box">
<a-button type="primary" class="mr" @click="handleOk" :loading="loading">
确定
</a-button>
<a-button @click="handleReset"> 重置 </a-button>
</div>
</div>
</template>
<script>
import { mapGetters } from "vuex";
import local from "@/utils/local";
import { getDeptList } from "@/services/dept";
import {
saveAddMatter,
// addMatterToSite,
getMatterInfo,
} from "@/services/matter";
export default {
data() {
return {
siteId: local.getLocal("siteId"), // 站点id
loading: false,
labelCol: { span: 5 },
wrapperCol: { span: 19 },
isTimely: undefined,
isPromise: undefined,
isLinked: undefined,
onlineTypeItem: [], // 网办类型选项
eventTypeShowItem: [], // 事项类型选项
jointInfoShowItem: [], // 连办机构选项
performHierarchyShowItem: [], // 形式层级选项
certification: [], // 认证点击选项
typeItem: [], // 主题类型选项
baseform: {
matterName: "", // 事项 名称
englishName: "", // 事项英文名称
matterNo: "", //事项编号
sort: "", // 排序
belongDept: undefined, //所属部门
deptCode: undefined, //所属部门编号
legalTimeLimitShow: "", // 法定办结时限
promiseTimeLimitShow: "", // 承诺办结时限
isChargesShow: "", //是否收费
certificationLevelsShow: undefined, // 认证等级需求
source: 1, // 自定义事项
windowToTheSceneNum: "", // 窗口办理到现场次数
performDeptType: "", // 实施主体
eventTypeShow: undefined, // 事项类型名称
performHierarchyShow: undefined, //行使层级名称
jointInfoShow: undefined, // 联办机构
type: undefined, // 主题类型
operateTime: "", // 办理时间
operateSite: "", // 办理地点
cousultingShow: "", // 咨询方式
superviseShow: "", // 监督投诉方式
},
deptData: [], // 部门列表
rules: {
matterName: [
{ required: true, message: "事项名称不能为空", trigger: "blur" },
],
matterNo: [
{ required: true, message: "事项编号不能为空", trigger: "blur" },
],
deptCode: [
{ required: true, message: "所属部门不能为空", trigger: "change" },
],
},
};
},
computed: {
...mapGetters("site", ["matterDict"]),
},
watch: {
isTimely(newVal) {
if (newVal === "1" || newVal === undefined) {
this.baseform.legalTimeLimitShow = "";
}
},
isPromise(newVal) {
if (newVal === "1" || newVal === undefined) {
this.baseform.promiseTimeLimitShow = "";
}
},
isLinked(newVal) {
if (newVal === "1" || newVal === undefined) {
this.baseform.jointInfoShow = undefined;
}
},
},
created() {
if (this.$route.query.edit == 1) {
let matterId = this.$route.query.matterId;
this.getMatterInfo(matterId);
}
console.log(this.matterDict);
this.getDeptListData();
},
methods: {
// 获取部门列表
async getDeptListData() {
let res = await getDeptList({ siteId: this.siteId, page: 1, size: -1 });
let { code, data } = res.data;
if (code === 1) {
this.deptData = data.data;
}
},
// 编辑时获取信息
async getMatterInfo(id) {
let res = await getMatterInfo({ id });
if (res.data.code === 1) {
this.baseform = res.data.data;
}
},
// 保存
handleOk() {
this.$refs.form.validate(async (valid) => {
if (valid) {
this.loading = true;
let res = await saveAddMatter({
siteId: this.siteId,
...this.baseform,
});
let { code, msg, data } = res.data;
this.loading = false;
if (code === 1) {
this.$message.success(msg);
// await addMatterToSite({
// siteId: this.siteId,
// matterIds: data.entity.id + "",
// });
this.baseform = data.entity;
}
} else {
this.$message.warning("请完善表单");
}
});
},
// 重置
handleReset() {
let _this = this;
this.$confirm({
title: "系统提示",
content: "该操作会重置整个页面信息,确定要重置吗?",
okText: "确定",
okType: "danger",
cancelText: "取消",
centered: true,
icon: "exclamation-circle",
maskClosable: true,
onOk() {
_this.isTimely = undefined; // 是否及时办理
_this.isPromise = undefined; // 承诺是否及时办理
_this.isLinked = undefined; // 是否有联办机构
_this.$refs.form.resetFields();
},
onCancel() {
console.log("Cancel");
},
});
},
// 完善更多
checkMore() {
this.$router.push({
path: "addmatter",
query: {
formData: JSON.stringify(this.baseform),
},
});
},
},
};
</script>
<style lang="less" scoped>
.addsynopsis {
width: 100%;
height: 100%;
}
.more {
cursor: pointer;
}
</style>
\ No newline at end of file
...@@ -11,9 +11,9 @@ ...@@ -11,9 +11,9 @@
:label-col="{ span: 6 }" :label-col="{ span: 6 }"
:wrapper-col="{ span: 18 }" :wrapper-col="{ span: 18 }"
> >
<a-row :gutter="[8, 20]" type="flex" justify="start"> <a-row>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="事项名称" prop="matterName"> <a-form-model-item label="事项名称" prop="matterName">
<a-input <a-input
v-model="baseform.matterName" v-model="baseform.matterName"
placeholder="请输入事项名称" placeholder="请输入事项名称"
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="英文名" prop="englishName"> <a-form-model-item label="英文名" prop="englishName">
<a-input <a-input
v-model="baseform.englishName" v-model="baseform.englishName"
placeholder="请输入事项英文名称" placeholder="请输入事项英文名称"
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="事项编号" prop="matterNo"> <a-form-model-item label="事项编号" prop="matterNo">
<a-input <a-input
v-model="baseform.matterNo" v-model="baseform.matterNo"
placeholder="请输入事项编号" placeholder="请输入事项编号"
...@@ -38,20 +38,26 @@ ...@@ -38,20 +38,26 @@
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="[8, 20]" type="flex" justify="start"> <a-row>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="排序" prop="sort"> <a-form-model-item label="排序" prop="sort">
<a-input v-model="baseform.sort" placeholder="请输入序号" /> <a-input v-model="baseform.sort" placeholder="请输入序号" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="所属部门:" prop="belongDept"> <a-form-model-item label="所属部门" prop="deptCode">
<a-select v-model="baseform.belongDept" placeholder="请选择部门"> <a-select
showSearch
v-model="baseform.deptCode"
optionFilterProp="label"
placeholder="请选择部门"
>
<a-select-option <a-select-option
v-for="v in deptData" v-for="v in deptData"
:key="v.id" :key="v.id"
:value="v.name" :value="v.deptNumber"
:label="v.name"
> >
{{ v.name }}</a-select-option {{ v.name }}</a-select-option
> >
...@@ -60,12 +66,16 @@ ...@@ -60,12 +66,16 @@
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="服务对象" prop="appoveObjectShow"> <a-form-model-item label="服务对象" prop="appoveObjectShow">
<a-select <a-select
v-model="baseform.appoveObjectShow" v-model="baseform.appoveObjectShow"
placeholder="请选择服务对象" placeholder="请选择服务对象"
> >
<a-select-option v-for="v in appove" :key="v" :value="v"> <a-select-option
v-for="(v, key) in matterDict.appoveObjectShow"
:key="v"
:value="key"
>
{{ v }} {{ v }}
</a-select-option> </a-select-option>
</a-select> </a-select>
...@@ -73,38 +83,50 @@ ...@@ -73,38 +83,50 @@
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="[8, 20]" type="flex" justify="start"> <a-row>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="通办范围" prop="operatScopeShow"> <a-form-model-item label="通办范围" prop="operatScopeShow">
<a-select <a-select
v-model="baseform.operatScopeShow" v-model="baseform.operatScopeShow"
placeholder="请选择通办范围" placeholder="请选择通办范围"
> >
<a-select-option v-for="v in operat" :key="v" :value="v"> <a-select-option
v-for="(v, key) in matterDict.operatScopeShow"
:key="v"
:value="key"
>
{{ v }} {{ v }}
</a-select-option> </a-select-option>
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="办件类型" prop="appoveTimeLimitShow"> <a-form-model-item label="办件类型" prop="appoveTimeLimitShow">
<a-select <a-select
v-model="baseform.appoveTimeLimitShow" v-model="baseform.appoveTimeLimitShow"
placeholder="请选择办件类型" placeholder="请选择办件类型"
> >
<a-select-option v-for="v in appoveTime" :key="v" :value="v"> <a-select-option
v-for="(v, key) in matterDict.appoveTimeLimitShow"
:key="v"
:value="key"
>
{{ v }} {{ v }}
</a-select-option> </a-select-option>
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="办理形式" prop="handleType"> <a-form-model-item label="办理形式" prop="handleType">
<a-select <a-select
v-model="baseform.handleType" v-model="baseform.handleType"
placeholder="请选择办理形式" placeholder="请选择办理形式"
> >
<a-select-option v-for="v in handleType" :key="v" :value="v"> <a-select-option
v-for="(v, key) in matterDict.handleType"
:key="v"
:value="key"
>
{{ v }} {{ v }}
</a-select-option> </a-select-option>
</a-select> </a-select>
...@@ -112,60 +134,70 @@ ...@@ -112,60 +134,70 @@
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="[8, 20]" type="flex" justify="start"> <a-row>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="法定办结时限:" props="isTimely"> <a-form-model-item label="法定办结时限" props="legalTimeLimitShow">
<a-select <a-input-group compact>
v-model="isTimely" <a-select
placeholder="请选择" style="width: 30%"
style="width: 200px" v-model="isTimely"
@change="handleChangeLegal" placeholder="请选择"
> >
<a-select-option value="1">即办</a-select-option> <a-select-option value="1">即办</a-select-option>
<a-select-option value="2">工作日 </a-select-option> <a-select-option value="2">工作日 </a-select-option>
</a-select> </a-select>
<a-input-number <a-input-number
v-model="baseform.legalTimeLimitShow" v-model="baseform.legalTimeLimitShow"
:disabled="isTimely !== '2'" :disabled="isTimely !== '2'"
placeholder="请输入工作日数量" placeholder="请输入工作日数"
:min="0" :min="1"
style="width: 350px" style="width: 70%"
/> />
</a-input-group>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="承诺办结时限:" props="isPromise"> <a-form-model-item
<a-select label="承诺办结时限"
v-model="isPromise" props="promiseTimeLimitShow"
placeholder="请选择" >
style="width: 200px" <a-input-group compact>
@change="handleChangePromise" <a-select
> style="width: 30%"
<a-select-option value="1">即办</a-select-option> v-model="isPromise"
<a-select-option value="2">工作日 </a-select-option> placeholder="请选择"
</a-select> >
<a-input-number <a-select-option value="1">即办</a-select-option>
v-model="baseform.promiseTimeLimitShow" <a-select-option value="2">工作日 </a-select-option>
:disabled="isPromise !== '2'" </a-select>
placeholder="请输入工作日数量" <a-input-number
style="width: 350px" v-model="baseform.promiseTimeLimitShow"
/> :disabled="isPromise !== '2'"
placeholder="请输入工作日数"
:min="1"
style="width: 70%"
/>
</a-input-group>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="是否收费" prop="isChargesShow"> <a-form-model-item label="是否收费" prop="isChargesShow">
<a-radio-group v-model="baseform.isChargesShow"> <a-radio-group v-model="baseform.isChargesShow">
<a-radio value="是"></a-radio> <a-radio
<a-radio value="否"></a-radio> :value="key"
v-for="(v, key) in matterDict.isChargesShow"
:key="v"
>{{ v }}</a-radio
>
</a-radio-group> </a-radio-group>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="[8, 20]" type="flex" justify="start"> <a-row>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item <a-form-model-item
label="认证等级需求" label="认证等级需求"
prop="certificationLevelsShow" prop="certificationLevelsShow"
> >
<a-select <a-select
...@@ -173,16 +205,16 @@ ...@@ -173,16 +205,16 @@
placeholder="请选择认证等级需求" placeholder="请选择认证等级需求"
> >
<a-select-option <a-select-option
v-for="v in certification" v-for="(v, key) in matterDict.certificationLevelsShow"
:key="v" :key="v"
:value="v" :value="key"
>{{ v }}</a-select-option >{{ v }}</a-select-option
> >
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="计划生效日期" prop="planTakeTime"> <a-form-model-item label="计划生效日期" prop="planTakeTime">
<a-date-picker <a-date-picker
v-model="baseform.planTakeTime" v-model="baseform.planTakeTime"
type="date" type="date"
...@@ -193,7 +225,7 @@ ...@@ -193,7 +225,7 @@
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="承诺生效日期" prop="promiseTakeTime"> <a-form-model-item label="承诺生效日期" prop="promiseTakeTime">
<a-date-picker <a-date-picker
v-model="baseform.promiseTakeTime" v-model="baseform.promiseTakeTime"
type="date" type="date"
...@@ -205,90 +237,91 @@ ...@@ -205,90 +237,91 @@
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="[8, 20]" type="flex" justify="start"> <a-row>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item <a-form-model-item label="法定时限办结说明" prop="legalEndExplain">
label="法定时限办结说明:"
prop="legalEndExplain"
>
<a-textarea <a-textarea
v-model="baseform.legalEndExplain" v-model="baseform.legalEndExplain"
:auto-size="{ minRows: 3, maxRows: 5 }" :auto-size="{ minRows: 5, maxRows: 5 }"
allow-clear
placeholder="请输入法定时限办结说明"
/> />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item <a-form-model-item
label="承诺时限办结说明" label="承诺时限办结说明"
prop="promiseEndExplain" prop="promiseEndExplain"
> >
<a-textarea <a-textarea
v-model="baseform.promiseEndExplain" v-model="baseform.promiseEndExplain"
:auto-size="{ minRows: 3, maxRows: 5 }" :auto-size="{ minRows: 5, maxRows: 5 }"
allow-clear
placeholder="请输入承诺时限办结说明"
/> />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="特别程序" prop="specialProcedure"> <a-form-model-item label="特别程序" prop="specialProcedure">
<a-textarea <a-textarea
v-model="baseform.specialProcedure" v-model="baseform.specialProcedure"
:auto-size="{ minRows: 3, maxRows: 5 }" :auto-size="{ minRows: 5, maxRows: 5 }"
allow-clear
placeholder="请输入特别程序"
/> />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
</a-form-model> <!-- 窗口办理 -->
</div> <div class="color_title mt">窗口办理</div>
<a-row>
<!-- 窗口办理 -->
<div>
<div class="color_title mt">窗口办理</div>
<a-form-model
:model="windowform"
ref="windowform"
:label-col="{ span: 6 }"
:wrapper-col="{ span: 18 }"
>
<a-row :gutter="[8, 20]" type="flex" justify="start">
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="到现场次数" prop="windowToTheSceneNum"> <a-form-model-item label="到现场次数" prop="windowToTheSceneNum">
<a-input <a-input
v-model.number="windowform.windowToTheSceneNum" v-model.number="baseform.windowToTheSceneNum"
suffix="次" suffix="次"
placeholder="请输入到现场次数"
/> />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="预约办理:" prop="isOnlineSubscribeShow"> <a-form-model-item label="预约办理" prop="isOnlineSubscribeShow">
<a-radio-group v-model="windowform.isOnlineSubscribeShow"> <a-radio-group v-model="baseform.isOnlineSubscribeShow">
<a-radio value="1"></a-radio> <a-radio
<a-radio value="2"></a-radio> :value="key"
v-for="(v, key) in matterDict.isOnlineSubscribeShow"
:key="v"
>{{ v }}</a-radio
>
</a-radio-group> </a-radio-group>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="物流快递:" prop="isExpressTakeShow"> <a-form-model-item label="物流快递" prop="isExpressTakeShow">
<a-radio-group v-model="windowform.isExpressTakeShow"> <a-radio-group v-model="baseform.isExpressTakeShow">
<a-radio value="是"></a-radio> <a-radio
<a-radio value="否"></a-radio> :value="key"
v-for="(v, key) in matterDict.isExpressTakeShow"
:key="v"
>{{ v }}</a-radio
>
</a-radio-group> </a-radio-group>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
<a-row>
<a-row
:gutter="[8, 20]"
type="flex"
justify="start"
prop="isProvinceAcquisitionShow"
>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="全省就近取件:"> <a-form-model-item
<a-radio-group v-model="windowform.isProvinceAcquisitionShow"> label="全省就近取件"
<a-radio value="是"></a-radio> prop="isProvinceAcquisitionShow"
<a-radio value="否"></a-radio> >
<a-radio-group v-model="baseform.isProvinceAcquisitionShow">
<a-radio
:value="key"
v-for="(v, key) in matterDict.isProvinceAcquisitionShow"
:key="v"
>{{ v }}</a-radio
>
</a-radio-group> </a-radio-group>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
...@@ -297,75 +330,71 @@ ...@@ -297,75 +330,71 @@
label="全省就近办理:" label="全省就近办理:"
prop="isApplyProvinceShow" prop="isApplyProvinceShow"
> >
<a-radio-group v-model="windowform.isApplyProvinceShow"> <a-radio-group v-model="baseform.isApplyProvinceShow">
<a-radio value="是"></a-radio> <a-radio
<a-radio value="否"></a-radio> :value="key"
v-for="(v, key) in matterDict.isApplyProvinceShow"
:key="v"
>{{ v }}</a-radio
>
</a-radio-group> </a-radio-group>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
<a-row>
<a-row :gutter="[8, 20]" type="flex" justify="start">
<a-col :span="16"> <a-col :span="16">
<a-form-model-item <a-form-model-item
label="必须到现场原因" label="必须到现场原因"
:label-col="{ span: 3 }" :label-col="{ span: 3 }"
:wrapper-col="{ span: 21 }" :wrapper-col="{ span: 21 }"
prop="mustSceneExplain" prop="mustSceneExplain"
> >
<a-textarea <a-textarea
v-model="windowform.mustSceneExplain" v-model="baseform.mustSceneExplain"
:auto-size="{ minRows: 3, maxRows: 5 }" :auto-size="{ minRows: 5, maxRows: 5 }"
allow-clear
placeholder="请输入必须到现场原因"
/> />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
</a-form-model> <!-- 网上办理 -->
</div> <div class="color_title mt">网上办理</div>
<a-row>
<!-- 网上办理 -->
<div>
<div class="color_title mt">网上办理</div>
<a-form-model
:model="onlineform"
ref="onlineform"
:label-col="{ span: 6 }"
:wrapper-col="{ span: 18 }"
>
<a-row :gutter="[8, 20]" type="flex" justify="start">
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="网办类型" prop="onlineType"> <a-form-model-item label="网办类型" prop="onlineType">
<a-select <a-select
v-model="onlineform.onlineType" v-model="baseform.onlineType"
placeholder="请选择网办类型" placeholder="请选择网办类型"
> >
<a-select-option <a-select-option
v-for="v in onlineTypeItem" v-for="(v, key) in matterDict.onlineType"
:key="v" :key="v"
:value="v" :value="key"
>{{ v }}</a-select-option >{{ v }}</a-select-option
> >
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="到现场次数" prop="onlineToTheSceneNum"> <a-form-model-item label="到现场次数" prop="onlineToTheSceneNum">
<a-input <a-input
v-model.number="onlineform.onlineToTheSceneNum" v-model.number="baseform.onlineToTheSceneNum"
suffix="次" suffix="次"
placeholder="请输入到现场次数"
/> />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="网上办理深度" prop="onlineOperatDeep"> <a-form-model-item label="网上办理深度" prop="onlineOperatDeep">
<a-select <a-select
v-model="onlineform.onlineOperatDeep" v-model="baseform.onlineOperatDeep"
placeholder="请选择网上办理深度" placeholder="请选择网上办理深度"
> >
<a-select-option <a-select-option
v-for="v in onlineOperatDeepItem" v-for="(v, key) in matterDict.onlineOperatDeep"
:key="v" :key="v"
:value="v" :value="key"
>{{ v }}</a-select-option >{{ v }}</a-select-option
> >
</a-select> </a-select>
...@@ -373,82 +402,82 @@ ...@@ -373,82 +402,82 @@
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="[8, 20]" type="flex" justify="start"> <a-row>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item <a-form-model-item
label="支持物流快递" label="支持物流快递"
prop="isExpressTakeOnlineShow" prop="isExpressTakeOnlineShow"
> >
<a-radio-group v-model="onlineform.isExpressTakeOnlineShow"> <a-radio-group v-model="baseform.isExpressTakeOnlineShow">
<a-radio value="是"></a-radio> <a-radio
<a-radio value="否"></a-radio> :value="key"
v-for="(v, key) in matterDict.isExpressTakeOnlineShow"
:key="v"
>{{ v }}</a-radio
>
</a-radio-group> </a-radio-group>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="上门收取材料:" prop="isDoorTakeShow"> <a-form-model-item label="上门收取材料" prop="isDoorTakeShow">
<a-radio-group v-model="onlineform.isDoorTakeShow"> <a-radio-group v-model="baseform.isDoorTakeShow">
<a-radio value="是"></a-radio> <a-radio
<a-radio value="否"></a-radio> :value="key"
v-for="(v, key) in matterDict.isDoorTakeShow"
:key="v"
>{{ v }}</a-radio
>
</a-radio-group> </a-radio-group>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="[8, 20]" type="flex" justify="start"> <a-row>
<a-col :span="16"> <a-col :span="16">
<a-form-model-item <a-form-model-item
label="必须到现场原因" label="必须到现场原因"
:label-col="{ span: 3 }" :label-col="{ span: 3 }"
:wrapper-col="{ span: 21 }" :wrapper-col="{ span: 21 }"
prop="reaonlineMustSceneExplainson" prop="reaonlineMustSceneExplainson"
> >
<a-textarea <a-textarea
v-model="onlineform.reaonlineMustSceneExplainson" v-model="baseform.reaonlineMustSceneExplainson"
:auto-size="{ minRows: 3, maxRows: 5 }" :auto-size="{ minRows: 5, maxRows: 5 }"
allow-clear
placeholder="请输入必须到现场原因"
/> />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
</a-form-model> <!-- 常规信息 -->
</div> <div class="color_title mt">常规信息</div>
<a-row>
<!-- 常规信息 -->
<div>
<div class="color_title mt">常规信息</div>
<a-form-model
:model="routineform"
ref="routineform"
:label-col="{ span: 6 }"
:wrapper-col="{ span: 18 }"
>
<a-row :gutter="[8, 20]" type="flex" justify="start">
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="实施主体" prop="performDeptType"> <a-form-model-item label="实施主体" prop="performDeptType">
<a-input <a-input
v-model="routineform.performDeptType" v-model="baseform.performDeptType"
placeholder="请输入实施主体" placeholder="请输入实施主体"
/> />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="事项版本" prop="matterEdition"> <a-form-model-item label="事项版本" prop="matterEdition">
<a-input <a-input
v-model="routineform.matterEdition" v-model="baseform.matterEdition"
placeholder="请输入事项版本" placeholder="请输入事项版本"
/> />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="事项类型" prop="eventTypeShow"> <a-form-model-item label="事项类型" prop="eventTypeShow">
<a-select <a-select
v-model="routineform.eventTypeShow" v-model="baseform.eventTypeShow"
placeholder="请选择事项类型" placeholder="请选择事项类型"
> >
<a-select-option <a-select-option
v-for="v in eventTypeShowItem" v-for="(v, key) in matterDict.eventTypeShow"
:key="v" :key="v"
:value="v" :value="key"
>{{ v }}</a-select-option >{{ v }}</a-select-option
> >
</a-select> </a-select>
...@@ -456,50 +485,47 @@ ...@@ -456,50 +485,47 @@
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="[8, 20]" type="flex" justify="start"> <a-row>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="行使层级" prop="performHierarchyShow"> <a-form-model-item label="行使层级" prop="performHierarchyShow">
<a-select <a-select
v-model="routineform.performHierarchyShow" v-model="baseform.performHierarchyShow"
placeholder="请选择行使层级" placeholder="请选择行使层级"
> >
<a-select-option <a-select-option
v-for="v in performHierarchyShowItem" v-for="(v, key) in matterDict.performHierarchyShow"
:key="v" :key="v"
:value="v" :value="key"
>{{ v }}</a-select-option >{{ v }}</a-select-option
> >
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="权力来源" prop="powerSourceShow"> <a-form-model-item label="权力来源" prop="powerSourceShow">
<a-select <a-select
v-model="routineform.powerSourceShow" v-model="baseform.powerSourceShow"
placeholder="请选择权力来源" placeholder="请选择权力来源"
> >
<a-select-option <a-select-option
v-for="v in powerSourceShowItem" v-for="(v, key) in matterDict.powerSourceShow"
:key="v" :key="v"
:value="v" :value="key"
>{{ v }}</a-select-option >{{ v }}</a-select-option
> >
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item <a-form-model-item label="实施主体性质" prop="performDeptTypeShow">
label="实施主体性质:"
prop="performDeptTypeShow"
>
<a-select <a-select
v-model="routineform.performDeptTypeShow" v-model="baseform.performDeptTypeShow"
placeholder="请选择实施主题性质" placeholder="请选择实施主题性质"
> >
<a-select-option <a-select-option
v-for="v in performDeptTypeShowItem" v-for="(v, key) in matterDict.performDeptTypeShow"
:key="v" :key="v"
:value="v" :value="key"
>{{ v }}</a-select-option >{{ v }}</a-select-option
> >
</a-select> </a-select>
...@@ -507,226 +533,261 @@ ...@@ -507,226 +533,261 @@
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="[8, 20]" type="flex" justify="start"> <a-row>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item <a-form-model-item
label="进驻政务大厅" label="进驻政务大厅"
prop="goveServiceCenterShow" prop="goveServiceCenterShow"
> >
<a-radio-group v-model="routineform.goveServiceCenterShow"> <a-radio-group v-model="baseform.goveServiceCenterShow">
<a-radio value="是"></a-radio> <a-radio
<a-radio value="否"></a-radio> :value="key"
v-for="(v, key) in matterDict.goveServiceCenterShow"
:key="v"
>{{ v }}</a-radio
>
</a-radio-group> </a-radio-group>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="自助终端办理:" prop="terminalHandle"> <a-form-model-item label="自助终端办理" prop="terminalHandle">
<a-radio-group v-model="routineform.terminalHandle"> <a-radio-group v-model="baseform.terminalHandle">
<a-radio value="是"></a-radio> <a-radio
<a-radio value="否"></a-radio> :value="key"
v-for="(v, key) in matterDict.terminalHandle"
:key="v"
>{{ v }}</a-radio
>
</a-radio-group> </a-radio-group>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="是否网办:" prop="isOnline"> <a-form-model-item label="是否网办" prop="isOnline">
<a-radio-group v-model="routineform.isOnline"> <a-radio-group v-model="baseform.isOnline">
<a-radio value="是"></a-radio> <a-radio
<a-radio value="否"></a-radio> :value="key"
v-for="(v, key) in matterDict.isOnline"
:key="v"
>{{ v }}</a-radio
>
</a-radio-group> </a-radio-group>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="[8, 20]" type="flex" justify="start"> <a-row>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="支持网上支付:" prop="isOnlinePayShow"> <a-form-model-item label="支持网上支付" prop="isOnlinePayShow">
<a-radio-group v-model="routineform.isOnlinePayShow"> <a-radio-group v-model="baseform.isOnlinePayShow">
<a-radio value="是"></a-radio> <a-radio
<a-radio value="否"></a-radio> :value="key"
v-for="(v, key) in matterDict.isOnlinePayShow"
:key="v"
>{{ v }}</a-radio
>
</a-radio-group> </a-radio-group>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="委托部门:" prop="entrustmentDepartmen"> <a-form-model-item label="委托部门" prop="entrustmentDepartmen">
<a-radio-group v-model="routineform.entrustmentDepartmen"> <a-radio-group v-model="baseform.entrustmentDepartmen">
<a-radio value="是"></a-radio> <a-radio
<a-radio value="否"></a-radio> :value="key"
v-for="(v, key) in matterDict.entrustmentDepartmen"
:key="v"
>{{ v }}</a-radio
>
</a-radio-group> </a-radio-group>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="联办机构:"> <a-form-model-item label="联办机构" prop="jointInfoShow">
<a-select <a-input-group compact>
v-model="isLinked" <a-select
placeholder="请选择" style="width: 30%"
style="width: 200px" v-model="isLinked"
@change="handleChangeLinked" placeholder="请选择"
>
<a-select-option value="1"></a-select-option>
<a-select-option value="2"></a-select-option>
</a-select>
<a-select
v-model="routineform.jointInfoShow"
:disabled="isLinked !== '2'"
placeholder="请选择联办机构"
>
<a-select-option
v-for="v in jointInfoShowItem"
:key="v"
:value="v"
>{{ v }}</a-select-option
> >
</a-select> <a-select-option value="1"></a-select-option>
<a-select-option value="2"></a-select-option>
</a-select>
<a-select
v-model="baseform.jointInfoShow"
:disabled="isLinked !== '2'"
placeholder="请选择联办机构"
style="width: 70%"
>
<a-select-option
v-for="{ v, key } in matterDict.jointInfoShowItem"
:key="v"
:value="key"
>{{ v }}</a-select-option
>
</a-select>
</a-input-group>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="[8, 20]" type="flex" justify="start"> <a-row>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="事项状态:" prop="matterStatus"> <a-form-model-item label="事项状态" prop="matterStatus">
<a-radio-group v-model="routineform.matterStatus"> <a-radio-group v-model="baseform.matterStatus">
<a-radio value="在用">在用</a-radio> <a-radio
<a-radio value="停用">停用</a-radio> :value="key"
v-for="(v, key) in matterDict.matterStatus"
:key="v"
>{{ v }}</a-radio
>
</a-radio-group> </a-radio-group>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="数量限制:"> <a-form-model-item label="数量限制" prop="numberLimit">
<a-select <a-input-group compact>
v-model="isCount" <a-select
placeholder="请选择" style="width: 30%"
style="width: 200px" v-model="isCount"
@change="handleChangeLimit" placeholder="请选择"
> >
<a-select-option value="1"></a-select-option> <a-select-option value="1"></a-select-option>
<a-select-option value="2"></a-select-option> <a-select-option value="2"></a-select-option>
</a-select> </a-select>
<a-input-number <a-input-number
v-model="routineform.numberLimit" v-model="baseform.numberLimit"
placeholder="请输入数字" placeholder="请输入数字"
style="width: 350px" style="width: 70%"
:min="0" :min="1"
:disabled="isCount !== '2'" :disabled="isCount !== '2'"
></a-input-number> ></a-input-number>
</a-input-group>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="主题类型:" prop="type"> <a-form-model-item label="主题类型" prop="type">
<a-select v-model="routineform.type" placeholder="请选择主题类型"> <a-select v-model="baseform.type" placeholder="请选择主题类型">
<a-select-option v-for="v in typeItem" :key="v" :value="v">{{ <a-select-option
v v-for="(v, key) in matterDict.type"
}}</a-select-option> :key="v"
:value="key"
>{{ v }}</a-select-option
>
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="[8, 20]" type="flex" justify="start"> <a-row>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="基本编码" prop="baseCode"> <a-form-model-item label="基本编码" prop="baseCode">
<a-input <a-input
v-model="routineform.baseCode" v-model="baseform.baseCode"
placeholder="请输入基本编码" placeholder="请输入基本编码"
/> />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="实施编码" prop="implementCode"> <a-form-model-item label="实施编码" prop="implementCode">
<a-input <a-input
v-model="routineform.implementCode" v-model="baseform.implementCode"
placeholder="请输入实施编码" placeholder="请输入实施编码"
/> />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="实施主体编码" prop="implementBodyCode"> <a-form-model-item label="实施主体编码" prop="implementBodyCode">
<a-input <a-input
v-model="routineform.implementBodyCode" v-model="baseform.implementBodyCode"
placeholder="请输入实施主体编码" placeholder="请输入实施主体编码"
/> />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="[8, 20]" type="flex" justify="start"> <a-row>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="办理项编码" prop="operateItemCode"> <a-form-model-item label="办理项编码" prop="operateItemCode">
<a-input <a-input
v-model="routineform.operateItemCode" v-model="baseform.operateItemCode"
placeholder="请输入办理项编码" placeholder="请输入办理项编码"
/> />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="乡镇街道名称" prop="townshipName"> <a-form-model-item label="乡镇街道名称" prop="townshipName">
<a-input <a-input
v-model="routineform.townshipName" v-model="baseform.townshipName"
placeholder="请输入乡镇街道名称" placeholder="请输入乡镇街道名称"
/> />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="乡镇街道代码" prop="townshipCode"> <a-form-model-item label="乡镇街道代码" prop="townshipCode">
<a-input <a-input
v-model="routineform.townshipCode" v-model="baseform.townshipCode"
placeholder="请输入乡镇街道代码" placeholder="请输入乡镇街道代码"
/> />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="[8, 20]" type="flex" justify="start"> <a-row>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="村居社区名称" prop="villageName"> <a-form-model-item label="村居社区名称" prop="villageName">
<a-input <a-input
v-model="routineform.villageName" v-model="baseform.villageName"
placeholder="请输入村居社区名称" placeholder="请输入村居社区名称"
/> />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="村居社区代码" prop="villageCode"> <a-form-model-item label="村居社区代码" prop="villageCode">
<a-input <a-input
v-model="routineform.villageCode" v-model="baseform.villageCode"
placeholder="请输入村居社区代码" placeholder="请输入村居社区代码"
/> />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="办理时间" prop="operateTime"> <a-form-model-item label="办理时间" prop="operateTime">
<a-input <a-input
v-model="routineform.operateTime" v-model="baseform.operateTime"
placeholder="请输入办理时间" placeholder="请输入办理时间"
/> />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="[8, 20]" type="flex" justify="start"> <a-row>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="办理地点" prop="operateSite"> <a-form-model-item label="办理地点" prop="operateSite">
<a-textarea <a-textarea
v-model="routineform.operateSite" v-model="baseform.operateSite"
:auto-size="{ minRows: 3, maxRows: 5 }" :auto-size="{ minRows: 5, maxRows: 5 }"
allow-clear
placeholder="请输入办理地点"
/> />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="咨询方式" prop="cousultingShow"> <a-form-model-item label="咨询方式" prop="cousultingShow">
<a-textarea <a-textarea
v-model="routineform.cousultingShow" v-model="baseform.cousultingShow"
:auto-size="{ minRows: 3, maxRows: 5 }" :auto-size="{ minRows: 5, maxRows: 5 }"
allow-clear
placeholder="请输入咨询方式"
/> />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item label="监督投诉方式" prop="superviseShow"> <a-form-model-item label="监督投诉方式" prop="superviseShow">
<a-textarea <a-textarea
v-model="routineform.superviseShow" v-model="baseform.superviseShow"
:auto-size="{ minRows: 3, maxRows: 5 }" :auto-size="{ minRows: 5, maxRows: 5 }"
allow-clear
placeholder="请输入监督投诉方式"
/> />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
...@@ -734,103 +795,40 @@ ...@@ -734,103 +795,40 @@
</a-form-model> </a-form-model>
</div> </div>
<div class="btn_box"> <div class="btn_box mb20">
<a-button type="primary" class="mr" @click="handleOk"> 确定 </a-button> <a-button type="primary" class="mr" @click="handleOk" :loading="loading">
确定
</a-button>
<a-button @click="handleReset"> 重置 </a-button> <a-button @click="handleReset"> 重置 </a-button>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
const appove = [ import {
"事业法人", saveAddMatter,
"社会组织法人", // addMatterToSite
"非法人企业", } from "@/services/matter";
"企业法人",
"自然人",
"其他组织",
];
const operat = ["", "全国", "全市", "全县", "全镇[乡 街道]", "跨村[社区]"];
const appoveTime = ["网络办件", "行政审批一般件", "综合窗口件"];
const handleType = ["窗口办理", "网上办理"];
const certification = ["实名认证", "单次面签", "每次面签"];
const onlineTypeItem = ["原件预审", "原件核验", "全程网办"];
const onlineOperatDeepItem = [
"互联网咨询",
"互联网收件",
"互联网预审",
"互联网受理",
"互联网办理",
"互联网办理结果信息反馈",
"其他",
];
const eventTypeShowItem = [
"行政许可",
"行政处罚",
"行政强制",
"行政征收",
"行政给付",
"行政检查",
"行政确认",
"行政奖励",
"行政裁决",
"其他行政权力",
"主动服务",
"依申请服务",
"咨询查询",
"未归类事项",
];
const performHierarchyShowItem = [
"省级",
"市级",
"县级",
"镇[乡 街道]",
"村[社区]级",
];
const powerSourceShowItem = [
"法定本级行使",
"上级下放",
"上级授权",
"同级授权",
"上级委托",
"同级委托",
];
const performDeptTypeShowItem = ["法定机关", "授权组织", "受委托组织"];
const jointInfoShowItem = ["网络理政部", "公共服务部", "党政建设部"];
const typeItem = ["法定机关", "授权组织", "受委托组织"];
import { saveAddMatter } from "@/services/matter";
import { getDeptList } from "@/services/dept"; import { getDeptList } from "@/services/dept";
import local from "@/utils/local"; import local from "@/utils/local";
import { mapGetters } from "vuex";
export default { export default {
data() { data() {
return { return {
appove, // 服务对象 loading: false,
operat, // 通办范围选项
appoveTime, // 办件类型选项
handleType, // 办理形式选项
certification, // 认证等级选项
onlineTypeItem, // 网上办件类型选项
onlineOperatDeepItem, // 网上办理深度选项
eventTypeShowItem, // 事项类型选项
performHierarchyShowItem, // 行使层级选项
powerSourceShowItem, // 权力来源选项
performDeptTypeShowItem, // 实施主体性质选项
jointInfoShowItem, // 联办机构选项
typeItem, // 主题类型选项
isTimely: undefined, // 是否及时办理 isTimely: undefined, // 是否及时办理
isPromise: undefined, // 承诺是否及时办理 isPromise: undefined, // 承诺是否及时办理
isLinked: undefined, // 是否有联办机构 isLinked: undefined, // 是否有联办机构
isCount: undefined, // 是否有数量限制 isCount: undefined, // 是否有数量限制
deptData: [], // 部门选项数据 deptData: [], // 部门选项数据
siteId: "", // 站点id siteId: local.getLocal("siteId"), // 站点id
baseform: { baseform: {
matterName: "", // 事项 名称 matterName: "", // 事项 名称
englishName: "", // 事项英文名称 englishName: "", // 事项英文名称
matterNo: "", //事项编号 matterNo: "", //事项编号
sort: "", // 排序 sort: "", // 排序
belongDept: undefined, //所属部门 belongDept: undefined, //所属部门
deptCode: undefined, //所属部门编号
appoveObjectShow: undefined, // 服务对象 appoveObjectShow: undefined, // 服务对象
operatScopeShow: undefined, // 承办范围 operatScopeShow: undefined, // 承办范围
appoveTimeLimitShow: undefined, // 办件类型 appoveTimeLimitShow: undefined, // 办件类型
...@@ -845,24 +843,18 @@ export default { ...@@ -845,24 +843,18 @@ export default {
promiseTakeTime: "", // 承诺生效日期 promiseTakeTime: "", // 承诺生效日期
specialProcedure: "", // 特别程序 specialProcedure: "", // 特别程序
source: 1, // 自定义事项 source: 1, // 自定义事项
},
windowform: {
windowToTheSceneNum: "", // 到现场次数 windowToTheSceneNum: "", // 到现场次数
isOnlineSubscribeShow: "", // 预约办理 isOnlineSubscribeShow: "", // 预约办理
isExpressTakeShow: "", // 快递 isExpressTakeShow: "", // 快递
isProvinceAcquisitionShow: "", // 全省就近取件 isProvinceAcquisitionShow: "", // 全省就近取件
isApplyProvinceShow: "", // 全省就近办理 isApplyProvinceShow: "", // 全省就近办理
mustSceneExplain: "", // 必须到现场原因 mustSceneExplain: "", // 必须到现场原因
},
onlineform: {
onlineType: undefined, // 网办类型 onlineType: undefined, // 网办类型
onlineToTheSceneNum: "", // 网办到现场次数 onlineToTheSceneNum: "", // 网办到现场次数
onlineOperatDeep: undefined, // 网上办理深度 onlineOperatDeep: undefined, // 网上办理深度
isExpressTakeOnlineShow: "", // 网办物流快递 isExpressTakeOnlineShow: "", // 网办物流快递
isDoorTakeShow: "", // 上门收取材料 isDoorTakeShow: "", // 上门收取材料
reaonlineMustSceneExplainson: "", // 网办到现场原因 reaonlineMustSceneExplainson: "", // 网办到现场原因
},
routineform: {
performDeptType: "", // 实施主体 performDeptType: "", // 实施主体
matterEdition: "", // 事项版本 matterEdition: "", // 事项版本
eventTypeShow: undefined, // 事项类型名称 eventTypeShow: undefined, // 事项类型名称
...@@ -899,7 +891,7 @@ export default { ...@@ -899,7 +891,7 @@ export default {
matterNo: [ matterNo: [
{ required: true, message: "事项编号不能为空", trigger: "blur" }, { required: true, message: "事项编号不能为空", trigger: "blur" },
], ],
belongDept: [ deptCode: [
{ required: true, message: "所属部门不能为空", trigger: "change" }, { required: true, message: "所属部门不能为空", trigger: "change" },
], ],
handleType: [ handleType: [
...@@ -909,105 +901,120 @@ export default { ...@@ -909,105 +901,120 @@ export default {
}; };
}, },
created() { created() {
this.mergeForm();
this.getDeptListData(); this.getDeptListData();
}, },
computed: {}, computed: {
methods: { ...mapGetters("site", ["matterDict"]),
// 获取部门列表 },
async getDeptListData() { watch: {
let res = await getDeptList({ siteId: this.siteId }); isTimely(newVal) {
let { code, data } = res.data; if (newVal === "1" || newVal === undefined) {
if (code === 1) {
this.deptData = data.data;
}
},
// 法定时限选择
handleChangeLegal(val) {
if (val === "1" || val === undefined) {
this.baseform.legalTimeLimitShow = ""; this.baseform.legalTimeLimitShow = "";
} }
}, },
// 承诺时限选择 isPromise(newVal) {
handleChangePromise(val) { if (newVal === "1" || newVal === undefined) {
if (val === "1" || val === undefined) {
this.baseform.promiseTimeLimitShow = ""; this.baseform.promiseTimeLimitShow = "";
} }
}, },
// 联办机构选择 isLinked(newVal) {
handleChangeLinked(val) { if (newVal === "1" || newVal === undefined) {
if (val === "1" || val === undefined) { this.baseform.jointInfoShow = undefined;
this.routineform.jointInfoShow = undefined;
} }
}, },
// 数量限制选择 isCount(newVal) {
handleChangeLimit(val) { if (newVal === "1" || newVal === undefined) {
if (val === "1" || val === undefined) { this.baseform.numberLimit = "";
this.routineform.numberLimit = ""; }
},
},
methods: {
// 合并概要
mergeForm() {
let formData = this.$route.query.formData;
if (formData) {
formData = JSON.parse(formData);
this.baseform = { ...this.baseform, ...formData };
if (this.baseform.id) {
const obj = {
id: this.baseform.id,
matterName: this.baseform.matterName,
};
local.setLocal("matter", obj);
}
}
},
// 获取部门列表
async getDeptListData() {
let res = await getDeptList({ siteId: this.siteId, page: 1, size: -1 });
let { code, data } = res.data;
if (code === 1) {
this.deptData = data.data;
} }
}, },
// 保存 // 保存
async handleOk() { handleOk() {
let res = await saveAddMatter({ this.$refs.baseform.validate(async (valid) => {
siteId: this.$route.query.siteId, if (valid) {
...this.baseform, this.loading = true;
...this.windowform, let res = await saveAddMatter({
...this.onlineform, siteId: this.siteId,
...this.routineform, ...this.baseform,
planTakeTime: Number(this.baseform.planTakeTime), planTakeTime: Number(this.baseform.planTakeTime),
promiseTakeTime: Number(this.baseform.promiseTakeTime), promiseTakeTime: Number(this.baseform.promiseTakeTime),
});
let { code, msg, data } = res.data;
this.loading = false;
if (code === 1) {
// await addMatterToSite({
// siteId: this.siteId,
// matterIds: data.entity.id + "",
// });
const obj = {
id: data.entity.id,
matterName: data.entity.matterName,
};
local.setLocal("matter", obj);
this.$message.success(msg);
this.baseform = data.entity;
}
} else {
this.$message.warning("请完善表单");
}
}); });
let { code, msg, data } = res.data;
if (code === 1) {
this.$message.success(msg);
const obj = {
id: data.entity.id,
matterName: data.entity.matterName,
};
local.setLocal("matter", obj);
// Object.assign(this.baseform, this.$options.data().baseform);
// Object.assign(this.windowform, this.$options.data().windowform);
// Object.assign(this.onlineform, this.$options.data().onlineform);
// Object.assign(this.routineform, this.$options.data().routineform);
} else {
this.$message.error(msg);
}
}, },
// 重置 // 重置
handleReset() { handleReset() {
Object.assign(this.baseform, this.$options.data().baseform); let _this = this;
Object.assign(this.windowform, this.$options.data().windowform); this.$confirm({
Object.assign(this.onlineform, this.$options.data().onlineform); title: "系统提示",
Object.assign(this.routineform, this.$options.data().routineform); content: "该操作会重置整个页面信息,确定要重置吗?",
okText: "确定",
okType: "danger",
cancelText: "取消",
centered: true,
icon: "exclamation-circle",
maskClosable: true,
onOk() {
_this.isTimely = undefined; // 是否及时办理
_this.isPromise = undefined; // 承诺是否及时办理
_this.isLinked = undefined; // 是否有联办机构
_this.isCount = undefined; // 是否有数量限制
_this.$refs.baseform.resetFields();
},
onCancel() {
console.log("Cancel");
},
});
}, },
}, },
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.basemessage { .basemessage {
width: 98%; width: 100%;
.color_title {
margin-left: 15px;
position: relative;
margin-bottom: 15px;
&::before {
content: "";
width: 4px;
height: 20px;
position: absolute;
top: 1px;
left: -16px;
background-color: rgba(5, 149, 253, 1);
}
}
.btn_box {
padding: 25px 126px 20px;
justify-content: flex-start;
.btn {
padding: 8px 24px;
border-radius: 4px;
}
}
} }
.ant-form-item { .ant-form-item {
display: flex; display: flex;
...@@ -1017,13 +1024,4 @@ export default { ...@@ -1017,13 +1024,4 @@ export default {
/deep/ .ant-form-explain { /deep/ .ant-form-explain {
position: absolute; position: absolute;
} }
/deep/.ant-input {
width: 100% !important;
}
/deep/.ant-col-6 {
width: 25% !important;
}
/deep/.ant-col-3 {
width: 12.5% !important;
}
</style> </style>
...@@ -99,8 +99,8 @@ ...@@ -99,8 +99,8 @@
></AddData> ></AddData>
<!-- 预览 --> <!-- 预览 -->
<PrevieModal <PrevieModal
:previeVisible.sync="previeVisible" :previewVisible.sync="previewVisible"
:previeData="previeData" :previewData="previewData"
></PrevieModal> ></PrevieModal>
</div> </div>
</template> </template>
...@@ -139,8 +139,8 @@ export default { ...@@ -139,8 +139,8 @@ export default {
AddVisible: false, AddVisible: false,
title: "", title: "",
fieldCode: "", fieldCode: "",
previeVisible: false, previewVisible: false,
previeData: {}, // 预览信息 previewData: {}, // 预览信息
}; };
}, },
computed: { computed: {
...@@ -274,11 +274,11 @@ export default { ...@@ -274,11 +274,11 @@ export default {
}, },
// 预览 // 预览
handlePreview(type, url) { handlePreview(type, url) {
this.previeData = { this.previewData = {
type, type,
url, url,
}; };
this.previeVisible = true; this.previewVisible = true;
}, },
}, },
}; };
......
<template>
<div class="business-matter">
<router-view></router-view>
</div>
</template>
<script>
export default {};
</script>
<style lang="less" scoped>
.business-matter {
width: 100%;
min-height: 100%;
background-color: #fff;
display: flex;
}
</style>
\ No newline at end of file
<template> <template>
<div class="business"> <div class="business">
<a-tabs v-model="active"> <a-tabs v-model="active">
<a-tab-pane :key="1" tab="业务管理"> <a-tab-pane :key="1" tab="事项管理">
<BusinessTabs1 v-if="active === 1" ref="BusinessTabs1" /> <BusinessTabs2 v-if="active === 1" ref="BusinessTabs2" />
</a-tab-pane> </a-tab-pane>
<a-tab-pane :key="2" tab="事项管理"> <a-tab-pane :key="2" tab="业务管理">
<BusinessTabs2 v-if="active === 2" ref="BusinessTabs2" /> <BusinessTabs1 v-if="active === 2" ref="BusinessTabs1" />
</a-tab-pane> </a-tab-pane>
<a-tab-pane :key="3" tab="业务事项关联"> <a-tab-pane :key="3" tab="业务事项关联">
......
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
<div class="header-bottom"> <div class="header-bottom">
<div class="left-btn"> <div class="left-btn">
<a-button type="danger" @click="handleDelAll"> 批量移除 </a-button> <a-button type="danger" @click="handleDelAll"> 批量移除 </a-button>
<!-- <a-button class="add-btn" @click="addItems"> 新增事项 </a-button> -->
</div> </div>
<div class="search-box"> <div class="search-box">
<!-- <a-select <!-- <a-select
...@@ -67,6 +66,17 @@ ...@@ -67,6 +66,17 @@
<template slot="deptName" slot-scope="text"> <template slot="deptName" slot-scope="text">
{{ text.deptName ? text.deptName : "--" }} {{ text.deptName ? text.deptName : "--" }}
</template> </template>
<!-- 事项名称 -->
<template slot="matterName" slot-scope="text">
<a-tooltip placement="topLeft">
<template slot="title">
{{ text.matterName }}
</template>
<div class="matter-name">{{ text.matterName }}</div>
</a-tooltip>
<a-tag v-if="text.source === 0" color="green"> 一体化添加 </a-tag>
<a-tag v-else color="blue"> 手动添加 </a-tag>
</template>
<!-- 到现场次数 --> <!-- 到现场次数 -->
<template slot="num" slot-scope="text"> <template slot="num" slot-scope="text">
<span v-if="text.windowToTheSceneNum">{{ <span v-if="text.windowToTheSceneNum">{{
...@@ -79,12 +89,21 @@ ...@@ -79,12 +89,21 @@
</template> </template>
<!-- 操作 --> <!-- 操作 -->
<template slot="action" slot-scope="text"> <template slot="action" slot-scope="text">
<a <a-space>
href="javascript:;" <a
class="delete" href="javascript:;"
@click="handleDel(text.id, text)" v-if="text.source == 1"
>移除</a class="edit"
> @click="handleEdit(text.matterId)"
>编辑</a
>
<a
href="javascript:;"
class="delete"
@click="handleDel(text.id, text)"
>移除</a
>
</a-space>
</template> </template>
</a-table> </a-table>
</div> </div>
...@@ -92,10 +111,11 @@ ...@@ -92,10 +111,11 @@
<!-- 右 --> <!-- 右 -->
<div class="right"> <div class="right">
<div class="header"> <div class="header">
<h3 class="titel">一体化事项列表</h3> <h3 class="titel">基础事项列表</h3>
<div class="control"> <div class="control">
<div> <div>
<a-button type="primary" @click="handleAddAll"> 批量加入 </a-button> <a-button type="primary" @click="handleAddAll"> 批量加入 </a-button>
<a-button class="add-btn" @click="addMatter"> 新增事项 </a-button>
</div> </div>
<div> <div>
<a-input-search <a-input-search
...@@ -143,10 +163,29 @@ ...@@ -143,10 +163,29 @@
<template slot="deptName" slot-scope="text"> <template slot="deptName" slot-scope="text">
{{ text.deptName ? text.deptName : "--" }} {{ text.deptName ? text.deptName : "--" }}
</template> </template>
<!-- 事项名称 -->
<template slot="matterName" slot-scope="text">
<a-tooltip placement="topLeft">
<template slot="title">
{{ text.matterName }}
</template>
<div class="matter-name">{{ text.matterName }}</div>
</a-tooltip>
<a-tag v-if="text.source === 0" color="green"> 一体化添加 </a-tag>
<a-tag v-else color="blue"> 手动添加 </a-tag>
</template>
<!-- 操作 -->
<template slot="action" slot-scope="text"> <template slot="action" slot-scope="text">
<a href="javascript:;" class="jion" @click="handleIn(text.id)" <a href="javascript:;" class="jion" @click="handleIn(text.id)"
>加入</a >加入</a
> >
<a
href="javascript:;"
v-if="text.source == 1"
class="edit"
@click="handleEdit(text.id)"
>编辑</a
>
<a <a
href="javascript:;" href="javascript:;"
class="delete" class="delete"
...@@ -171,6 +210,7 @@ import { ...@@ -171,6 +210,7 @@ import {
import { getBusinessMatterList, delBusinessMatter } from "@/services/business"; import { getBusinessMatterList, delBusinessMatter } from "@/services/business";
// import { getDeptList } from "@/services/dept"; // import { getDeptList } from "@/services/dept";
import local from "@/utils/local"; import local from "@/utils/local";
import { mapMutations } from "vuex";
const leftColumns = [ const leftColumns = [
{ {
title: "序号", title: "序号",
...@@ -186,8 +226,11 @@ const leftColumns = [ ...@@ -186,8 +226,11 @@ const leftColumns = [
}, },
{ {
title: "事项名称", title: "事项名称",
ellipsis: true, // ellipsis: true,
dataIndex: "matterName", align: "left",
scopedSlots: {
customRender: "matterName",
},
}, },
{ {
title: "到现场次数", title: "到现场次数",
...@@ -219,12 +262,15 @@ const rightColumns = [ ...@@ -219,12 +262,15 @@ const rightColumns = [
}, },
{ {
title: "事项名称", title: "事项名称",
ellipsis: true, // ellipsis: true,
dataIndex: "matterName", align: "left",
scopedSlots: {
customRender: "matterName",
},
}, },
{ {
title: "操作", title: "操作",
width: "110px", width: "130px",
scopedSlots: { scopedSlots: {
customRender: "action", customRender: "action",
}, },
...@@ -266,6 +312,7 @@ export default { ...@@ -266,6 +312,7 @@ export default {
}, },
methods: { methods: {
...mapMutations("site", ["SET_matterDict"]),
// 获取站点事项 // 获取站点事项
async getMatterSiteData(search = {}) { async getMatterSiteData(search = {}) {
this.leftLoading = true; this.leftLoading = true;
...@@ -295,14 +342,17 @@ export default { ...@@ -295,14 +342,17 @@ export default {
matterName: this.searchRightVal, matterName: this.searchRightVal,
...search, ...search,
}); });
let { pageInfo, data } = res.data.data; if (res.data.code === 1) {
if (!data.length && this.rightCurrent > 1) { let { pageInfo, data, dict } = res.data.data;
this.rightCurrent -= 1; if (!data.length && this.rightCurrent > 1) {
this.getMatterListData(); this.rightCurrent -= 1;
this.getMatterListData();
}
this.matterDataList = data;
this.rightTotal = pageInfo.totalResult;
this.SET_matterDict(dict);
this.rightLoading = false;
} }
this.matterDataList = data;
this.rightTotal = pageInfo.totalResult;
this.rightLoading = false;
}, },
// 左边搜索 // 左边搜索
onSearchLeft() { onSearchLeft() {
...@@ -338,14 +388,12 @@ export default { ...@@ -338,14 +388,12 @@ export default {
}); });
}, },
//新增事项 //新增事项
addItems() { addMatter() {
if (!this.siteId) {
this.$message.warning("请先选择站点");
return;
}
this.$router.push({ this.$router.push({
path: "addbusiness", path: "/business/synopsis",
query: { siteId: this.siteId }, query: {
edit: 0,
},
}); });
}, },
onSelectChange(key, data) { onSelectChange(key, data) {
...@@ -417,7 +465,6 @@ export default { ...@@ -417,7 +465,6 @@ export default {
this.getMatterSiteData(); this.getMatterSiteData();
this.getMatterListData(); this.getMatterListData();
this.selectedRowKeys = []; this.selectedRowKeys = [];
this.$bus.$emit("addMatterSiteData");
} }
}, },
// 右边删除 // 右边删除
...@@ -491,6 +538,16 @@ export default { ...@@ -491,6 +538,16 @@ export default {
} }
} }
}, },
// 编辑
handleEdit(matterId) {
this.$router.push({
path: "/business/synopsis",
query: {
edit: 1,
matterId,
},
});
},
}, },
}; };
</script> </script>
...@@ -512,6 +569,12 @@ export default { ...@@ -512,6 +569,12 @@ export default {
margin-right: 19px; margin-right: 19px;
} }
} }
.matter-name {
margin-bottom: 10px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
} }
.header-bottom { .header-bottom {
display: flex; display: flex;
......
...@@ -113,6 +113,18 @@ ...@@ -113,6 +113,18 @@
<template slot="deptName" slot-scope="text"> <template slot="deptName" slot-scope="text">
{{ text.deptName ? text.deptName : "--" }} {{ text.deptName ? text.deptName : "--" }}
</template> </template>
<!-- 事项名称 -->
<template slot="matterName" slot-scope="text">
<a-tooltip placement="topLeft">
<template slot="title">
{{ text.matterName }}
</template>
<div class="matter-name">{{ text.matterName }}</div>
</a-tooltip>
<!-- <a-tag v-if="text.source === 0" color="green"> 一体化添加 </a-tag>
<a-tag v-else color="blue"> 手动添加 </a-tag> -->
</template>
<!-- 操作 -->
<template slot="action" slot-scope="text"> <template slot="action" slot-scope="text">
<a href="javascript:;" class="jion" @click="handleIn(text)">关联</a> <a href="javascript:;" class="jion" @click="handleIn(text)">关联</a>
</template> </template>
...@@ -287,8 +299,11 @@ const rightColumns = [ ...@@ -287,8 +299,11 @@ const rightColumns = [
}, },
{ {
title: "事项名称", title: "事项名称",
ellipsis: true, // ellipsis: true,
dataIndex: "matterName", align: "left",
scopedSlots: {
customRender: "matterName",
},
}, },
{ {
title: "操作", title: "操作",
...@@ -664,6 +679,12 @@ export default { ...@@ -664,6 +679,12 @@ export default {
} }
} }
} }
.matter-name {
margin-bottom: 10px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.header-bottom { .header-bottom {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
......
...@@ -9,7 +9,9 @@ ...@@ -9,7 +9,9 @@
> >
<div slot="footer"> <div slot="footer">
<a-button @click="resetForm">重置</a-button> <a-button @click="resetForm">重置</a-button>
<a-button type="primary" @click="handleOk">确定</a-button> <a-button :loading="loading" type="primary" @click="handleOk"
>确定</a-button
>
</div> </div>
<div class="content"> <div class="content">
<a-form-model <a-form-model
...@@ -156,6 +158,20 @@ ...@@ -156,6 +158,20 @@
</a-form-model-item> </a-form-model-item>
<a-form-model-item label="中心Logo" prop="logoPath"> <a-form-model-item label="中心Logo" prop="logoPath">
<a-upload <a-upload
:action="api + 'base/file/commonupload'"
list-type="picture-card"
:file-list="fileList"
@preview="handlePreview"
@change="handleChange"
:accept="accept"
>
<div v-if="fileList.length < 1">
<a-icon type="plus" />
<div class="ant-upload-text">上传图片</div>
</div>
</a-upload>
<!-- <a-upload
name="file" name="file"
list-type="picture-card" list-type="picture-card"
class="avatar-uploader" class="avatar-uploader"
...@@ -174,7 +190,7 @@ ...@@ -174,7 +190,7 @@
<a-icon :type="loading ? 'loading' : 'plus'" /> <a-icon :type="loading ? 'loading' : 'plus'" />
<div class="ant-upload-text">上传图片</div> <div class="ant-upload-text">上传图片</div>
</div> </div>
</a-upload> </a-upload> -->
</a-form-model-item> </a-form-model-item>
<div class="color_title">办公信息</div> <div class="color_title">办公信息</div>
...@@ -255,6 +271,11 @@ ...@@ -255,6 +271,11 @@
</a-form-model> </a-form-model>
</div> </div>
</a-modal> </a-modal>
<!-- 预览 -->
<PrevieModal
:previewData="previewData"
:previewVisible.sync="previewVisible"
></PrevieModal>
</div> </div>
</template> </template>
<script> <script>
...@@ -262,6 +283,7 @@ import { modelList, siteSave } from "@/services/basicsetFun"; ...@@ -262,6 +283,7 @@ import { modelList, siteSave } from "@/services/basicsetFun";
import YCheckbox from "@/components/ycheckbox/YCheckbox.vue"; import YCheckbox from "@/components/ycheckbox/YCheckbox.vue";
// import options from "@/utils/city"; // import options from "@/utils/city";
import { regionData } from "element-china-area-data"; import { regionData } from "element-china-area-data";
import PrevieModal from "@/components/PrevieModal.vue";
export default { export default {
props: { props: {
formVisible: { formVisible: {
...@@ -283,6 +305,7 @@ export default { ...@@ -283,6 +305,7 @@ export default {
}, },
components: { components: {
YCheckbox, YCheckbox,
PrevieModal,
}, },
data() { data() {
// 验证手机号码 // 验证手机号码
...@@ -310,6 +333,8 @@ export default { ...@@ -310,6 +333,8 @@ export default {
api: process.env.VUE_APP_API_BASE_URL + "/", api: process.env.VUE_APP_API_BASE_URL + "/",
accept: "image/jpeg,image/png", // 上传类型 accept: "image/jpeg,image/png", // 上传类型
loading: false, loading: false,
previewData: {}, // 预览logo信息
previewVisible: false,
options: regionData, // 地区级联数据 options: regionData, // 地区级联数据
tablename: "", //接口名称 tablename: "", //接口名称
modelIds: [], // 板块数据 modelIds: [], // 板块数据
...@@ -356,6 +381,7 @@ export default { ...@@ -356,6 +381,7 @@ export default {
}, //表单提交数据 }, //表单提交数据
indeterminate: true, indeterminate: true,
checkAll: false, checkAll: false,
fileList: [],
formRules: { formRules: {
siteName: [ siteName: [
{ {
...@@ -552,10 +578,12 @@ export default { ...@@ -552,10 +578,12 @@ export default {
}, },
//重置 //重置
resetForm() { resetForm() {
this.fileList = [];
this.$refs.ruleForm.resetFields(); this.$refs.ruleForm.resetFields();
}, },
// 关闭对话框 // 关闭对话框
closeModal() { closeModal() {
this.fileList = [];
this.$refs.ruleForm.resetFields(); this.$refs.ruleForm.resetFields();
this.Visible = false; this.Visible = false;
}, },
...@@ -581,12 +609,23 @@ export default { ...@@ -581,12 +609,23 @@ export default {
this.formInfo.amWorkEndTime = String(this.formInfo.amWorkEndTime); this.formInfo.amWorkEndTime = String(this.formInfo.amWorkEndTime);
this.formInfo.pmWorkStartTime = String(this.formInfo.pmWorkStartTime); this.formInfo.pmWorkStartTime = String(this.formInfo.pmWorkStartTime);
this.formInfo.pmWorkEndTime = String(this.formInfo.pmWorkEndTime); this.formInfo.pmWorkEndTime = String(this.formInfo.pmWorkEndTime);
if (this.formInfo.logoPath) {
this.fileList = [
{
uid: -1,
status: "done",
name: this.formInfo.logoPath,
url: this.api + this.formInfo.logoPath,
url2: this.formInfo.logoPath,
},
];
}
}, },
// 保存 // 保存
handleOk() { handleOk() {
console.log(this.formInfo);
this.$refs.ruleForm.validate(async (valid) => { this.$refs.ruleForm.validate(async (valid) => {
if (valid) { if (valid) {
this.loading = true;
let res = await siteSave({ let res = await siteSave({
...this.formInfo, ...this.formInfo,
...this.areaInfo, ...this.areaInfo,
...@@ -597,8 +636,10 @@ export default { ...@@ -597,8 +636,10 @@ export default {
modelIds: this.formInfo.modelIds.join(","), modelIds: this.formInfo.modelIds.join(","),
}); });
let { code, msg } = res.data; let { code, msg } = res.data;
this.loading = false;
if (code === 1) { if (code === 1) {
this.$message.success(msg); this.$message.success(msg);
this.fileList = [];
this.Visible = false; this.Visible = false;
this.$parent.getSiteList({ areaID: this.areaInfo.areaID }); this.$parent.getSiteList({ areaID: this.areaInfo.areaID });
} }
...@@ -619,19 +660,42 @@ export default { ...@@ -619,19 +660,42 @@ export default {
return isJpgOrPng && isLt2M; return isJpgOrPng && isLt2M;
}, },
// 上传图片 // 上传图片
handleChange(info) { handleChange({ fileList }) {
if (info.file.status === "uploading") { this.fileList = fileList.map((v) => {
this.loading = true; if (v.response) {
return; v.url2 = v.response.url;
} v.url = this.api + v.response.url;
if (info.file.status === "done") { }
this.formInfo.logoPath = info.file.response.url; return v;
this.loading = false; });
if (this.fileList[0]) {
this.formInfo.logoPath = this.fileList[0].url2;
} else {
this.formInfo.logoPath = "";
} }
// if (info.file.status === "uploading") {
// this.loading = true;
// return;
// }
// if (info.file.status === "done") {
// this.formInfo.logoPath = info.file.response.url;
// this.loading = false;
// }
}, },
// 预览logo
handlePreview(info) {
this.previewData = {
type: "img",
url: info.url,
};
this.previewVisible = true;
},
// 删除logo
// handleRemove() {
// this.formInfo.logoPath = "";
// },
// 地址 // 地址
oncityChange(val) { oncityChange(val) {
console.log(val);
[ [
this.formInfo.proCode, this.formInfo.proCode,
this.formInfo.cityCode, this.formInfo.cityCode,
......
...@@ -50,18 +50,33 @@ const options = { ...@@ -50,18 +50,33 @@ const options = {
}, },
{ {
path: "business", path: "business",
name: "业务事项管理",
meta: { meta: {
icon: "book", icon: "book",
}, },
component: () => import("@/pages/basicset/business/business"), component: () => import("@/pages/basicset/business/Index"),
}, children: [
{ {
path: "addbusiness", path: "",
name: "新增事项", name: "业务事项管理",
component: () => meta: {
import("@/pages/basicset/addbusiness/addbusiness.vue"), icon: "book",
meta: { invisible: true }, invisible: true,
},
component: () => import("@/pages/basicset/business/business"),
},
{
path: "addmatter",
name: "新增事项",
component: () => import("@/pages/basicset/addmatter/AddMatter"),
meta: { invisible: true },
},
{
path: "synopsis",
name: "事项概要",
component: () => import("@/pages/basicset/addmatter/Synopsis"),
meta: { invisible: true },
},
],
}, },
{ {
......
...@@ -52,6 +52,11 @@ export async function delMatter(data) { ...@@ -52,6 +52,11 @@ export async function delMatter(data) {
export async function getMatterListSubList(data) { export async function getMatterListSubList(data) {
return request(matter.matterList, METHOD.POST, data); return request(matter.matterList, METHOD.POST, data);
} }
// 查看基础事项
export async function getMatterInfo(data) {
return request(matter.info, METHOD.GET, data);
}
/** /**
* 事项申请材料 * 事项申请材料
*/ */
......
import Vue from 'vue' import Vue from "vue";
import Vuex from 'vuex' import Vuex from "vuex";
import modules from './modules' import modules from "./modules";
import createPersistedState from "vuex-persistedstate";
Vue.use(Vuex) Vue.use(Vuex);
const store = new Vuex.Store({modules}) const store = new Vuex.Store({
modules,
// 持久化插件
plugins: [
createPersistedState({
storage: window.sessionStorage,
}),
],
});
export default store export default store;
...@@ -5,6 +5,7 @@ export default { ...@@ -5,6 +5,7 @@ export default {
imageResolution: [], // 皮肤设置分辨率 imageResolution: [], // 皮肤设置分辨率
SiteTree: [], // 站点树 SiteTree: [], // 站点树
appTemplate: [], // 应用模板属性 appTemplate: [], // 应用模板属性
matterDict: {}, // 事项字典
}, },
getters: { getters: {
SiteTree(state) { SiteTree(state) {
...@@ -13,11 +14,17 @@ export default { ...@@ -13,11 +14,17 @@ export default {
appTemplate(state) { appTemplate(state) {
return state.appTemplate; return state.appTemplate;
}, },
matterDict(state) {
return state.matterDict;
},
}, },
mutations: { mutations: {
SET_appTemplate(state, appTemplate) { SET_appTemplate(state, appTemplate) {
state.appTemplate = appTemplate; state.appTemplate = appTemplate;
}, },
SET_matterDict(state, matterDict) {
state.matterDict = matterDict;
},
SET_SITE_ID(state, newId) { SET_SITE_ID(state, newId) {
state.siteId = newId; state.siteId = newId;
}, },
......
...@@ -9735,6 +9735,11 @@ shell-quote@^1.6.1: ...@@ -9735,6 +9735,11 @@ shell-quote@^1.6.1:
resolved "https://registry.npm.taobao.org/shell-quote/download/shell-quote-1.7.2.tgz" resolved "https://registry.npm.taobao.org/shell-quote/download/shell-quote-1.7.2.tgz"
integrity sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I= integrity sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I=
shvl@^2.0.3:
version "2.0.3"
resolved "https://registry.npmmirror.com/shvl/-/shvl-2.0.3.tgz#eb4bd37644f5684bba1fc52c3010c96fb5e6afd1"
integrity sha512-V7C6S9Hlol6SzOJPnQ7qzOVEWUQImt3BNmmzh40wObhla3XOYMe4gGiYzLrJd5TFa+cI2f9LKIRJTTKZSTbWgw==
side-channel@^1.0.4: side-channel@^1.0.4:
version "1.0.4" version "1.0.4"
resolved "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz" resolved "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz"
...@@ -11186,6 +11191,14 @@ vuepress@^1.5.2: ...@@ -11186,6 +11191,14 @@ vuepress@^1.5.2:
opencollective-postinstall "^2.0.2" opencollective-postinstall "^2.0.2"
update-notifier "^4.0.0" update-notifier "^4.0.0"
vuex-persistedstate@^4.1.0:
version "4.1.0"
resolved "https://registry.npmmirror.com/vuex-persistedstate/-/vuex-persistedstate-4.1.0.tgz#127165f85f5b4534fb3170a5d3a8be9811bd2a53"
integrity sha512-3SkEj4NqwM69ikJdFVw6gObeB0NHyspRYMYkR/EbhR0hbvAKyR5gksVhtAfY1UYuWUOCCA0QNGwv9pOwdj+XUQ==
dependencies:
deepmerge "^4.2.2"
shvl "^2.0.3"
vuex@^3.4.0: vuex@^3.4.0:
version "3.4.0" version "3.4.0"
resolved "https://registry.npm.taobao.org/vuex/download/vuex-3.4.0.tgz" resolved "https://registry.npm.taobao.org/vuex/download/vuex-3.4.0.tgz"
......
...@@ -46,7 +46,7 @@ public class MatterController extends BaseCRUDJsonBodyMappingController<MatterSe ...@@ -46,7 +46,7 @@ public class MatterController extends BaseCRUDJsonBodyMappingController<MatterSe
private ParamService paramService; private ParamService paramService;
@Autowired @Autowired
private InterceptorConfig interceptorConfig; private InterceptorConfig interceptorConfig;
@Autowired
private SiteThemeService siteThemeService; private SiteThemeService siteThemeService;
public MatterController() { public MatterController() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment