master
loveflow 9 months ago
parent e670b074df
commit de64853cc2

@ -40,7 +40,7 @@
"vue-template-compiler": "^2.6.11" "vue-template-compiler": "^2.6.11"
}, },
"eslintConfig": { "eslintConfig": {
"root": true, "root": false,
"env": { "env": {
"node": true "node": true
}, },

@ -1,4 +1,5 @@
import request from "@/utils/request"; import request from "@/utils/request";
import Vue from 'vue'
//post //post
export function postAction(url, parameter) { export function postAction(url, parameter) {
@ -20,7 +21,7 @@ export function getAction(url, parameter) {
//deleteAction //deleteAction
export function deleteAction(url, parameter) { export function deleteAction(url, parameter) {
return axios({ return request({
url: url, url: url,
method: "delete", method: "delete",
params: parameter, params: parameter,

@ -1,15 +1,103 @@
<template> <template>
<el-dialog <el-dialog
title="提示" :title="modelTitle"
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
width="30%" :width="width"
:before-close="handleClose" :before-close="handleClose"
> >
<el-form ref="relForm" :model="model" :label-width="labelWidth">
<a-row>
<a-col
:span="24"
v-for="(item, index) in formItems"
:key="index + item.attrs.model"
>
<el-form-item
:label-width="item.itemAttrs.labelWidth || labelWidth"
v-bind="item.itemAttrs || {}"
:prop="item.attrs.model"
>
<template v-if="item.type === 'slot'">
<!--将表单内部的数据通过作用域插槽传给外部-->
<slot :name="item.slot" :scope="model" />
</template>
<template v-if="item.type === 'text'">
<span v-bind="item.attrs || {}">
{{ model[item.attrs.model] }}</span
>
</template>
<span slot="footer" class="dialog-footer"> <template v-if="item.type === 'input'">
<el-input
v-model.trim="model[item.attrs.model]"
v-bind="item.attrs || {}"
v-on="item.listeners || {}"
></el-input>
</template>
<template v-if="item.type === 'inputNum'">
<el-input-number
v-model.trim="model[item.attrs.model]"
v-bind="item.attrs || {}"
v-on="item.listeners || {}"
></el-input-number>
</template>
<template v-if="item.type === 'textarea'">
<el-input
v-model.trim="model[item.attrs.model]"
v-bind="item.attrs || {}"
v-on="item.listeners || {}"
></el-input>
</template>
<template v-if="item.type === 'radioGroup'">
<el-radio-group
name="radioGroup"
v-model.trim="model[item.attrs.model]"
>
<el-radio
v-for="radio in item.attrs.option"
:label="radio.value"
:key="radio.value"
>{{ radio.name }}</el-radio
>
</el-radio-group>
</template>
<template v-if="item.type === 'select'">
<el-select
v-model.trim="model[item.attrs.model]"
v-bind="item.attrs || {}"
v-on="item.listeners || {}"
>
<el-option
v-for="option in item.attrs.option"
:key="option.value"
:label="option.label"
:value="option.value"
>
</el-option>
</el-select>
</template>
<template v-if="item.type === 'date'">
<el-date-picker
v-bind="item.attrs || {}"
v-model.trim="model[item.attrs.model]"
v-on="item.listeners || {}"
style="width: 100%"
></el-date-picker>
</template>
</el-form-item> </a-col
></a-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button> <el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="dialogVisible = false"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
</span> </div>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
@ -18,109 +106,82 @@ export default {
width: { width: {
type: Number, type: Number,
default: () => { default: () => {
return 800 return 800;
}, },
}, },
formItems: { formItems: {
type: Array, type: Array,
default: () => { default: () => {
return [] return [];
}, },
}, },
labelWidth: { labelWidth: {
type: String, type: String,
default: () => { default: () => {
return '100px' return "100px";
},
},
title: {
type: String,
default: () => {
return '新增'
}, },
}, },
}, },
data() { data() {
return { return {
confirmLoading: false,
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
model: {}, model: {},
modelTitle: '', modelTitle: "",
visible: false, dialogVisible: false,
formDisabled: false, // formDisabled: false, //
isMerge: false, //model isMerge: false, //model
} };
}, },
methods: { methods: {
openDialog(opt, data) { openDialog(opt, data, title) {
this.visible = true this.dialogVisible = true;
this.modelTitle = this.title this.initModel();
this.initModel() if (opt === "edit") {
if (opt === 'edit') {
// //
this.modelTitle = '编辑' this.modelTitle = title || "编辑";
this.mergeModel(data) this.mergeModel(data);
} }
if (opt === 'detail') { if (opt === "detail") {
// //
this.modelTitle = '详情' this.modelTitle = title || "详情";
this.formDisabled = true this.formDisabled = true;
this.mergeModel(data) this.mergeModel(data);
} }
if (opt === 'other') { if (opt === "other") {
this.mergeModel(data) this.modelTitle = title;
this.mergeModel(data);
} }
}, },
// //
initModel() { initModel() {
this.model = {} this.model = {};
this.formItems.forEach((formItem) => { this.formItems.forEach((formItem) => {
if (!formItem.attrs || !formItem.attrs.model) return //model() if (!formItem.attrs || !formItem.attrs.model) return; //model()
this.$set(this.model, formItem.attrs.model, formItem.attrs.value ? formItem.attrs.value : '') this.$set(
}) this.model,
formItem.attrs.model,
formItem.attrs.value ? formItem.attrs.value : ""
);
});
}, },
// //
mergeModel(data) { mergeModel(data) {
this.model = Object.assign(this.model, data) this.model = Object.assign(this.model, data);
}, },
submitForm() { submitForm() {
// //
this.$refs.relForm.validate((valid) => { this.$refs.relForm.validate((valid) => {
if (!valid) { if (!valid) {
return return;
} }
this.$emit('dialogSubmit', this.model) this.$emit("formSubmit", this.model);
}) });
},
handleCancel() {
this.visible = false
this.formDisabled = false
this.isMerge = false
}, },
handleClose() {
this.dialogVisible = false;
this.formDisabled = false;
this.isMerge = false;
}, },
watch: {
/* formItems: {
handler() {
console.log(222)
this.formItems.forEach((formItem) => {
if (!formItem.attrs || !formItem.attrs.model) return //model()
this.$set(
this.model,
formItem.attrs.model,
this.model[formItem.attrs.model] ? this.model[formItem.attrs.model] : formItem.attrs.value
)
})
},
deep: true,
immediate: true,
}, */
}, },
} watch: {},
};
</script> </script>

@ -8,6 +8,7 @@ import module from './routes/module'
import enterpriseManage from './routes/enterpriseManage' import enterpriseManage from './routes/enterpriseManage'
const routes = [ const routes = [
...enterpriseManage,
{ {
path: '/', path: '/',
name: 'box', name: 'box',
@ -92,7 +93,7 @@ const routes = [
// name:'module', // name:'module',
// component: () => import('@/views/module'), // component: () => import('@/views/module'),
// }, // },
...enterpriseManage,
] ]
}, },
{ {

@ -5,31 +5,31 @@ Vue.use(VueRouter);
export default [ export default [
//平安企业专题驾驶舱 //平安企业专题驾驶舱
{ {
path: "enterpriseManage/topicCockpit", path: "/enterpriseManage/topicCockpit",
name: "topicCockpitIndex", name: "topicCockpitIndex",
component: () => import("@/views/enterpriseManage/topicCockpit/index"), component: () => import("@/views/enterpriseManage/topicCockpit/index"),
}, },
//平安企业风险监测 //平安企业风险监测
{ {
path: "enterpriseManage/riskMonitor", path: "/enterpriseManage/riskMonitor",
name: "riskMonitorIndex", name: "riskMonitorIndex",
component: () => import("@/views/enterpriseManage/riskMonitor/index"), component: () => import("@/views/enterpriseManage/riskMonitor/index"),
}, },
//企业档案管理 //企业档案管理
{ {
path: "enterpriseManage/recordManage", path: "/enterpriseManage/recordManage",
name: "recordManageIndex", name: "recordManageIndex",
component: () => import("@/views/enterpriseManage/recordManage/index"), component: () => import("@/views/enterpriseManage/recordManage/index"),
}, },
//企业风险指数应用 //企业风险指数应用
{ {
path: "enterpriseManage/riskIndex", path: "/enterpriseManage/riskIndex",
name: "riskIndexIndex", name: "riskIndexIndex",
component: () => import("@/views/enterpriseManage/riskIndex/index"), component: () => import("@/views/enterpriseManage/riskIndex/index"),
}, },
//平安企业协同共治 //平安企业协同共治
{ {
path: "enterpriseManage/teamWork", path: "/enterpriseManage/teamWork",
name: "teamWorkIndex", name: "teamWorkIndex",
component: () => import("@/views/enterpriseManage/teamWork/index"), component: () => import("@/views/enterpriseManage/teamWork/index"),
}, },

Loading…
Cancel
Save