master
loveflow 9 months ago
parent e670b074df
commit de64853cc2

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

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

@ -1,15 +1,103 @@
<template>
<el-dialog
title="提示"
:title="modelTitle"
:visible.sync="dialogVisible"
width="30%"
:width="width"
: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 type="primary" @click="dialogVisible = false"> </el-button>
</span>
<el-button type="primary" @click="submitForm"> </el-button>
</div>
</el-dialog>
</template>
<script>
@ -18,109 +106,82 @@ export default {
width: {
type: Number,
default: () => {
return 800
return 800;
},
},
formItems: {
type: Array,
default: () => {
return []
return [];
},
},
labelWidth: {
type: String,
default: () => {
return '100px'
},
},
title: {
type: String,
default: () => {
return '新增'
return "100px";
},
},
},
data() {
return {
confirmLoading: false,
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
model: {},
modelTitle: '',
visible: false,
modelTitle: "",
dialogVisible: false,
formDisabled: false, //
isMerge: false, //model
}
};
},
methods: {
openDialog(opt, data) {
this.visible = true
this.modelTitle = this.title
this.initModel()
if (opt === 'edit') {
openDialog(opt, data, title) {
this.dialogVisible = true;
this.initModel();
if (opt === "edit") {
//
this.modelTitle = '编辑'
this.mergeModel(data)
this.modelTitle = title || "编辑";
this.mergeModel(data);
}
if (opt === 'detail') {
if (opt === "detail") {
//
this.modelTitle = '详情'
this.formDisabled = true
this.mergeModel(data)
this.modelTitle = title || "详情";
this.formDisabled = true;
this.mergeModel(data);
}
if (opt === 'other') {
this.mergeModel(data)
if (opt === "other") {
this.modelTitle = title;
this.mergeModel(data);
}
},
//
initModel() {
this.model = {}
this.model = {};
this.formItems.forEach((formItem) => {
if (!formItem.attrs || !formItem.attrs.model) return //model()
this.$set(this.model, formItem.attrs.model, formItem.attrs.value ? formItem.attrs.value : '')
})
if (!formItem.attrs || !formItem.attrs.model) return; //model()
this.$set(
this.model,
formItem.attrs.model,
formItem.attrs.value ? formItem.attrs.value : ""
);
});
},
//
mergeModel(data) {
this.model = Object.assign(this.model, data)
this.model = Object.assign(this.model, data);
},
submitForm() {
//
this.$refs.relForm.validate((valid) => {
if (!valid) {
return
return;
}
this.$emit('dialogSubmit', this.model)
})
},
handleCancel() {
this.visible = false
this.formDisabled = false
this.isMerge = false
this.$emit("formSubmit", this.model);
});
},
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>

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

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

Loading…
Cancel
Save