Commit 747a7dff by 蔡嘉凯

蔡嘉凯 2021_3_7

parent e2167770
import {post} from "@/utils/http";
import base from "@/api/base";
//获取关联案件
export const getGzGlajList = params =>
post(`${base.alyIP}/glaj/getGzGlajList`, params);
<template>
<div id="formCommonPage">
<div class="formContent" :style="{ width: autowidth }">
<div class="formHeader">
<p class="formTitle">{{ headerTitle }}</p>
<div class="divider"></div>
</div>
<el-form
:rules="rules"
:selfUpdate="true"
ref="formLabelAlign"
label-position="right"
label-width="170px"
class="allForm"
:model="formLabelAlign"
>
<el-form-item
:label="item.name"
v-for="(item, index) in propFormField"
:key="index"
:prop="item.id"
v-if="item.isShow2"
:class="'item' + item.col"
:style="getFormStyle(item.isBlock)"
>
<!--输入框-->
<el-input
:placeholder="item.placeholder"
v-model="formLabelAlign[item.id]"
v-if="item.type == 'text'"
:disabled="item.disabled"
>
</el-input>
<div class="codeTag" v-if="item.type == 'codeTag'">
<el-select
v-model="formLabelAlign[item.id]"
:placeholder="item.placeholder"
:class="item.tag"
:multiple="item.multiple"
:disabled="item.disabled"
popper-class="zdyCodeDialog"
:popper-append-to-body="false"
empty-text="请从弹框中选择数据"
@visible-change="
(val, $event) =>
showCodeTreeDialogTag(val, item, formLabelAlign, item.id)
"
clearable
>
<el-option
v-for="item2 in item.codeOptions"
:key="item2.id"
:label="item2.name"
:value="item2.id"
>
</el-option>
</el-select>
<div class="selectTag">
<el-tag
v-for="tag in selectTag"
:key="tag.id"
closable
:type="tag.type"
:effect="tagId == tag.id ? 'dark' : 'plain'"
style="margin-right: 10px; margin-top: 10px; cursor: default"
@click="handleTag(tag.id)"
@close="closeTag(tag.id)"
>
{{ tag.name }}
</el-tag>
</div>
</div>
<!--计数-->
<el-input-number
v-model="formLabelAlign[item.id]"
@change="handleNumber"
:min="1"
:max="10"
v-else-if="item.type == 'number'"
:disabled="item.disabled"
>
</el-input-number>
<!-- 文字按钮 -->
<!--输入框-最大值与最小值-->
<div
class="zdyInputW zdyInputCol2"
v-else-if="item.type == 'zdyText'"
>
<el-input
:placeholder="item.placeholder"
v-model="formLabelAlign[item.id]"
>
</el-input>
<el-input
:placeholder="item.placeholder2"
v-model="formLabelAlign[item.id]"
style="width: calc((100% - 150) / 2)"
>
</el-input>
</div>
<!--文本域-->
<el-input
type="textarea"
autosize
:rows="2"
:placeholder="item.placeholder"
v-model="formLabelAlign[item.id]"
v-else-if="item.type == 'textarea'"
:disabled="item.disabled"
>
</el-input>
<!--日期框-->
<el-date-picker
v-model="formLabelAlign[item.id]"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
v-else-if="item.type == 'date'"
:disabled="item.disabled"
>
</el-date-picker>
<el-date-picker
v-model="formLabelAlign[item.id]"
:disabled="item.disabled"
type="date"
placeholder="选择日期"
style="width:100%"
v-else-if="item.type == 'dates'"
:class="item.date"
>
</el-date-picker>
<!--多选框-->
<div class="zdyInputW" v-else-if="item.type == 'checkbox'">
<el-checkbox-group v-model="formLabelAlign[item.id]" size="small">
<el-checkbox
v-for="(item2, index2) in item.checkboxData"
:label="item2"
:key="index2"
>{{ item2 }}</el-checkbox
>
</el-checkbox-group>
</div>
<div class="zdyInputW" v-else-if="item.type == 'checkboxBotton'">
<el-checkbox-group v-model="formLabelAlign[item.id]" size="small">
<el-checkbox-button
v-for="item2 in item.checkboxData"
:label="item2"
:key="item2"
>{{ item2 }}</el-checkbox-button
>
</el-checkbox-group>
</div>
<!--单选框-->
<div class="zdyInputW" v-else-if="item.type == 'radio'">
<el-radio-group
v-model="formLabelAlign[item.id]"
size="small"
:disabled="item.disabled"
>
<el-radio
:label="item2.value"
v-for="item2 in item.radioData"
:key="item2.value"
>{{ item2.name }}</el-radio
>
</el-radio-group>
</div>
<div class="zdyInputW" v-else-if="item.type == 'radioBotton'">
<el-radio-group v-model="formLabelAlign[item.id]" size="small">
<el-radio
:label="item2.id"
border
v-for="item2 in item.radioData"
:key="item2.id"
style="margin-right: 6px"
>{{ item2.name }}
</el-radio>
</el-radio-group>
</div>
<div class="zdyInputW" v-else-if="item.type == 'radios'">
<el-radio-group v-model="formLabelAlign[item.id]" size="small">
<el-radio
:label="item2.id"
v-for="item2 in item.radiData"
:key="item2.id"
style="margin-right: 20px"
>{{ item2.name }}
</el-radio>
</el-radio-group>
</div>
<!--字典框-->
<div class="zdyInputW" v-else-if="item.type == 'code'">
<el-select
v-model="formLabelAlign[item.id]"
:placeholder="item.placeholder"
:class="item.bj"
:multiple="item.multiple"
@change="(val) => selectChanged(val, item)"
clearable
>
<el-option
v-for="item2 in item.codeOptions"
:key="item2.id"
:label="item2.name"
:value="item2.id"
>
</el-option>
</el-select>
</div>
<!--树形弹出字典框-->
<div class="zdyInputW" v-else-if="item.type == 'codeTree'">
<el-select
v-model="formLabelAlign[item.id]"
:placeholder="item.placeholder"
:class="item.bj"
:multiple="item.multiple"
popper-class="zdyCodeDialog"
:popper-append-to-body="false"
:disabled="item.disabled"
style="width:100%"
empty-text="请从弹框中选择数据"
@visible-change="
(val, $event) =>
showCodeTreeDialog(val, item, formLabelAlign, item.id)
"
clearable
>
<el-option
v-for="item2 in item.codeOptions"
:key="item2.id"
:label="item2.name"
:value="item2.id"
>
</el-option>
</el-select>
</div>
<div
v-else-if="item.type == 'lazyCodeTree'"
:class="item.bj ? 'Inputbj' : ''"
>
<el-cascader
:props="item.props"
v-model="formLabelAlign[item.id]"
:placeholder="item.placeholder"
:show-all-levels="false"
>
</el-cascader>
</div>
<!--动态加载的树形字典框-->
<!--文件上传-->
<div
class="fj_wrap"
v-else-if="item.type == 'xz' && propXsfjbhList.length"
>
<div
class="fj_item"
v-for="fjitem in propXsfjbhList"
:key="fjitem.xxzjbh"
>
<div class="fj_name">
<i class="iconfont iconfujian-wenjian"></i>
<span>{{ fjitem.xsfjDzwjbt }}</span>
</div>
<div class="cz">
<div class="xz" @click="down(fjitem)">下载</div>
</div>
</div>
</div>
<el-upload
class="upload-demo item7"
:action="item.requestUrl"
:on-change="
(flie, fileList) => {
handleChange(flie, fileList, item);
}
"
:on-remove="
(flie, fileList) => {
handleRemove(flie, fileList, item);
}
"
:auto-upload="false"
:http-request="httpRequest"
:file-list="fileLists[item.fileId || item.id]"
v-model="formLabelAlign[item.id]"
v-else-if="item.type == 'file'"
>
<el-button size="small" type="primary">选择上传</el-button>
</el-upload>
<!--判断是否有子集-->
<div style="margin-left: -140px" v-if="item.children">
<div>
<el-form-item
:label="item2.name"
v-for="(item2, index2) in item.children"
:key="index2"
:prop="item2.id"
:class="'item' + item2.col"
v-show="item2.flag == formLabelAlign[item.id]"
>
<!--输入框-->
<el-input
:placeholder="item2.placeholder"
v-model="formLabelAlign[item2.id]"
v-if="item2.type == 'text'"
>
</el-input>
<!--输入框-最大值与最小值-->
<div
class="zdyInputW zdyInputCol2"
v-else-if="item2.type == 'zdyText'"
>
<el-input
:placeholder="item2.placeholder"
v-model="formLabelAlign[item.id]"
>
</el-input>
<el-input
:placeholder="item2.placeholder2"
v-model="formLabelAlign[item.id]"
style="width: calc((100% - 150) / 2)"
>
</el-input>
</div>
<!--文本域-->
<el-input
type="textarea"
autosize
:placeholder="item2.placeholder"
v-model="formLabelAlign[item.id]"
v-else-if="item2.type == 'textarea'"
>
</el-input>
<!--日期框-->
<!-- 时间框 -->
<div v-else-if="item2.type == 'date'">
<el-date-picker
v-model="reakData[item2.id]"
:placeholder="item2.placeholder"
format="yyyy 年 MM 月 dd 日"
value-format="timestamp"
clearable
>
</el-date-picker>
</div>
<el-date-picker
v-model="formLabelAlign[item2.id]"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
v-else-if="item2.type == 'date1'"
>
</el-date-picker>
<!--多选框-->
<div class="zdyInputW" v-else-if="item2.type == 'checkbox'">
<el-checkbox-group
v-model="formLabelAlign[item.id]"
size="small"
>
<el-checkbox
v-for="item3 in item2.checkboxData"
:label="item3"
:key="item3"
>{{ item3 }}</el-checkbox
>
</el-checkbox-group>
</div>
<!--单选框-->
<div class="zdyInputW" v-else-if="item2.type == 'radio'">
<el-radio-group
v-model="formLabelAlign[item2.id]"
size="small"
>
<el-radio
:label="item3.id"
v-for="item3 in item2.radioData"
:key="item3.id"
>{{ item.name }}</el-radio
>
</el-radio-group>
</div>
<!--字典框-->
<div class="zdyInputW" v-else-if="item2.type == 'code'">
<el-select
v-model="formLabelAlign[item2.id]"
:placeholder="item2.placeholder"
:class="item2.bj"
:multiple="item2.multiple"
@change="(val) => selectChanged(val, item2)"
clearable
>
<el-option
v-for="item3 in item2.codeOptions"
:key="item3.id"
:label="item3.name"
:value="item3.id"
>
</el-option>
</el-select>
</div>
<!--树形弹出字典框-->
<div class="zdyInputW" v-else-if="item2.type == 'codeTree'">
<el-select
v-model="formLabelAlign[item2.id]"
:placeholder="item2.placeholder"
:class="item2.code"
popper-class="zdyCodeDialog"
:popper-append-to-body="false"
:multiple="item2.multiple"
:disabled="item2.disabled"
empty-text="请从弹框中选择数据"
@visible-change="
(val, $event) =>
showCodeTreeDialog(val, item2, formLabelAlign, item2.id)
"
clearable
>
<el-option
v-for="item3 in item2.codeOptions"
:key="item3.id"
:label="item3.name"
:value="item3.id"
>
</el-option>
</el-select>
</div>
<div
class="zdyInputW"
v-else-if="item2.type == 'lazyCodeTree'"
:class="item2.bj ? 'Inputbj' : ''"
>
<el-cascader
:props="item2.props"
v-model="formLabelAlign[item2.id]"
:placeholder="item2.placeholder"
:show-all-levels="false"
>
</el-cascader>
</div>
<!--计数-->
<el-input-number
v-model="formLabelAlign[item2.id]"
:min="1"
:max="10"
v-else-if="item2.type == 'number'"
></el-input-number>
</el-form-item>
</div>
</div>
<!--判断是否有可添加得子集-->
<div
class="childrenAsAdd"
v-if="item.childrenAsAdd"
style="width: calc(100% + 140px); margin-left: -140px"
>
<div v-for="(item2, index2) in item.childrenAsAdd" :key="index2">
<div v-if="item2.flag == formLabelAlign[item.id] || !item2.flag">
<div v-for="(item3, ind) in item2.list" :key="ind">
<div v-if="ind == 0">
<div
v-for="(reakData, realIndex) in formLabelAlign[item2.id]"
:key="realIndex"
>
<span class="addName" v-if="item2.name"
>{{ item2.name.substring(0, item2.name.length - 1)
}}{{ realIndex + 1 }}:</span
>
<span class="addContent">
<i
:class="'zdyicon ' + item2.iconClass"
@click="deleteObj(reakData)"
v-if="realIndex != 0"
></i>
<el-form-item
v-for="item4 in item3.name"
:label="item4.name"
:prop="`${item2.id}[${realIndex}].${item4.id}`"
:key="item4.id"
:class="'item' + item4.col"
:rules="rules[item2.id + '.' + item4.id]"
>
<!--输入框-->
<el-input
:placeholder="item4.placeholder"
v-model="reakData[item4.id]"
v-if="item4.type == 'text'"
:disabled="item4.disabled"
>
<el-button
slot="append"
icon="el-icon-search"
v-if="item4.append"
@click="hxShuju(reakData[item4.id], realIndex)"
></el-button>
</el-input>
<!-- 带按钮输入框 -->
<!-- 带提示输入框 -->
<div
v-else-if="item4.type == 'texts'"
style="display: flex"
>
<el-input
:placeholder="item4.placeholder"
v-model="reakData[item4.id]"
@blur="
queryData(reakData[item4.id], item4, realIndex)
"
:disabled="item4.disabled"
style="width: 249px"
>
</el-input>
<div
style="
margin-left: 20px;
color: #fe9200;
line-hight: 40px;
"
v-if="
item4.type == 'texts' &&
item4.contents &&
reakData[item4.id]
"
>
<i class="el-icon-info"></i>
<span>发现{{ reakData.total }}条相关线索</span>
<span
@click="showData(reakData[item4.id], item4)"
style="
color: #222222;
margin-left: 10px;
cursor: pointer;
"
>点击查看</span
>
</div>
</div>
<div
class="zdyInputW"
v-else-if="item4.type == 'lazyCodeTree'"
:class="item4.bj ? 'Inputbj' : ''"
>
<el-cascader
:props="item4.props"
v-model="reakData[item4.id]"
:placeholder="item4.placeholder"
:show-all-levels="false"
>
</el-cascader>
</div>
<!--字典框-->
<div
class="zdyInputW"
v-else-if="item4.type == 'code'"
>
<el-select
v-model="reakData[item4.id]"
:placeholder="item4.placeholder"
:multiple="item4.multiple"
clearable
:disabled="item4.disabled"
>
<el-option
v-for="item5 in item4.codeOptions"
:key="item5.id"
:label="item5.name"
:value="item5.id"
>
</el-option>
</el-select>
</div>
<!--树形弹出字典框-->
<div
class="zdyInputW"
v-else-if="item4.type == 'codeTree'"
>
<el-select
v-model="reakData[item4.id]"
:placeholder="item4.placeholder"
popper-class="zdyCodeDialog"
:popper-append-to-body="false"
:class="item4.code"
:multiple="item4.multiple"
:disabled="item4.disabled"
empty-text="请从弹框中选择数据"
@visible-change="
(val, $event) =>
showCodeTreeDialog(
val,
item4,
reakData,
item4.id
)
"
clearable
>
<el-option
v-for="item5 in item4.codeOptions"
:key="item5.id"
:label="item5.name"
:value="item5.id"
>
</el-option>
</el-select>
</div>
<!--文本域-->
<el-input
type="textarea"
:placeholder="item4.placeholder"
v-model="reakData[item4.id]"
v-else-if="item4.type == 'textarea'"
:disabled="item4.disabled"
>
</el-input>
<!-- 时间框 -->
<el-date-picker
v-model="reakData[item4.id]"
v-else-if="item4.type == 'date'"
:placeholder="item4.placeholder"
format="yyyy 年 MM 月 dd 日"
value-format="timestamp"
clearable
>
</el-date-picker>
<!--日期框-->
<div v-else-if="item4.type == 'date1'">
<el-date-picker
v-model="reakData[item4.id]"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</div>
</el-form-item>
</span>
</div>
</div>
</div>
<div class="addChildBtn" v-if="item2.noshow != 'xx'">
<el-button
type="primary"
v-if="item2.id != 'sjgzry'"
@click="handelFrom(item2)"
>
<i class="el-icon-plus" v-if="item2.name"></i
><span style="font-size: 12px"
>新增{{
item2.name.slice(0, item2.name.length - 1)
}}</span
>
<i class="el-icon-plus" v-if="!item2.name"></i
><span style="font-size: 12px">新增</span>
</el-button>
<el-button
type="primary"
v-else-if="item2.id == 'sjgzry' && item2.showme"
@click="handelFrom(item2)"
>
<i class="el-icon-plus"></i
><span style="font-size: 12px"
>新增{{
item2.name.slice(0, item2.name.length - 1)
}}</span
>
</el-button>
</div>
</div>
</div>
</div>
</el-form-item>
</el-form>
<div>
<slot name="tbzjfkFj"></slot>
</div>
</div>
<!--多级或多数据下拉框弹框样式-->
<el-dialog
v-if="dialogCodeVisible"
:visible.sync="dialogCodeVisible"
style="z-index: 2020 !important;"
class="jyDialog"
:close-on-click-modal="false"
@close="codeTreeConfig.props = []"
append-to-body
center
>
<div
slot="title"
class="header-title"
style="
text-align: left;
height: 24px;
font-size: 18px;
font-family: Microsoft YaHei;
font-weight: bold;
line-height: 24px;
color: #ffffff;
opacity: 1;
"
>
<div>{{ codeTreeConfig.title }}</div>
</div>
<el-input
placeholder="输入关键字进行过滤"
v-model="filterText"
style="width: 96% !important"
>
</el-input>
<el-scrollbar
style="
height: calc(100% - 42px);
border-bottom: 1px solid #f2f2f2;
border-top: 1px solid #f2f2f2;
"
>
<el-tree
:props="codeTreeConfig.props"
node-key="id"
ref="codeTreeDialog"
:filter-node-method="filterNode"
:default-expanded-keys="[]"
@check="codeTreeNodeCheck"
@check-change="handleNodeClick"
:data="codeTreeConfig.props"
check-strictly
show-checkbox
style="min-height: 370px"
>
</el-tree>
</el-scrollbar>
<span slot="footer" class="dialog-footer" style="margin-left: 60%">
<el-button
type="primary"
@click="forSureSelectCode"
style="width: 120px; height: 36px"
>确 定</el-button
>
<el-button
@click="
dialogCodeVisible = false;
codeTreeConfig.props = [];
"
style="width: 120px; height: 36px"
>取 消</el-button
>
</span>
</el-dialog>
</div>
</template>
<script>
import { queryCodeByType } from "@/api/xsInput/xsInput.js";
import axios from "axios";
import utilTool from "@/utils/util.js";
const colNumber = 0;
export default {
name: "formCommonPage",
props: {
formField: {
type: Array,
default: () => [],
},
headerTitle: String,
headerTitle2: String,
formLabelAlign: {
type: Object,
default: () => {},
},
propWith: String,
propxsTitle: String,
propSt: String,
propBottonType: String,
autowidth: String,
outstyle: Object,
rule: {
type: Object,
default: () => {},
},
propXsfjbhList: {
type: Array,
default: () => [],
},
isdisabled: Boolean,
isdisabledBj: Boolean,
isdisabledTbzj: Boolean,
isdisabledXdzl: Boolean,
},
data() {
return {
filterText: "",
propFormField: this.formField,
fileLists: {}, //var cc= {"list1":[],}
bool: false,
disabled: false,
disabledBj: false,
selectTag: [],
tagId: "",
search: "",
tableSelect: [],
selectId: "",
ednId: "",
propCard: { multiple: true },
rules: {},
upFile: {},
//多级或多数据下拉框弹框样式(数据量太多时使用这种风格 普通字典还用原来的下拉框)
dialogCodeVisible: false,
//树型字典配置
codeTreeConfig: {
//弹框标题
title: "案发地区划",
//值字段
nodeKey: "value",
//字典类型
codeType: "CODE_XZQH",
//绑定的model
realValue: null,
//当前要展示的字段
fieldItem: null,
//codeTree预设
props: [],
},
};
},
created() {
var self = this;
if (self.propSt == "zljshc") {
self.rules = self.rule;
}
self.initFields();
},
methods: {
filterNode(value, data) {
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
//带按钮的输入框回显
hxShuju(id, item) {
this.$emit("hxShuju", id, item);
},
//附件下载
down(fjitem) {
var params = new FormData();
params.append("xxzjbh", fjitem.xxzjbh);
var url = "/api3/xsxq/xsfjxz";
axios
.post(url, params, {
responseType: "arraybuffer",
})
.then((res) => {
let blob = new Blob([res], {
type: "application/vnd.ms-excel",
});
// 组装a标签
let elink = document.createElement("a");
// 设置下载文件名
elink.download = fjitem.xsfjDzwjbt;
elink.style.display = "none";
elink.href = URL.createObjectURL(blob);
document.body.appendChild(elink);
elink.click();
document.body.removeChild(elink);
});
},
//数据展示
showData(content, item) {
console.log(123);
this.$emit("showDatas", content, item);
},
//数据查询
queryData(content, item, index) {
this.$emit("queryDatas", content, item, index);
},
getRowKeys(row) {
return row.id;
},
handleCurrentChange(val) {
this.formField[12].showTable.page.currentPage = val;
this.$parent.$parent.getSelectUserList();
},
serachUser() {
this.$emit("search", this.search);
//子组件向父组件传值
},
handleSelectionChange(val) {
this.tableSelect = val;
const selectArr = [];
val.forEach((item) => {
selectArr.push(item.unitcode);
});
this.ednId = this.$util.unique(selectArr);
},
closeTag(id) {
const index = this.formLabelAlign.jsdwGajgjgdm.findIndex((item) => {
return item.id == id;
});
// this.changeTags(id)
this.formLabelAlign.jsdwGajgjgdm.splice(index, 1);
},
//同步选择单位
changeLangEvent(id, name) {
var obj = {};
obj.id = id;
obj.name = name;
this.selectTag.push(obj);
obj = {};
},
//已选单位
changeTags(val, item) {
var self = this;
// self.selectId = val
// var obj = {}
// var selectArr = this.$refs['cascaderId'][0].getCheckedNodes()
// if (selectArr.length > 0) {
// obj.id = selectArr[selectArr.length - 1].value
// obj.name = selectArr[selectArr.length - 1].label
// self.selectTag.push(obj)
// obj = {}
// }
this.$emit("changeTag", val[val.length - 1]);
},
//单位选择
handleTag(id) {
debugger;
console.log(id);
this.tagId = id;
this.$emit("changeTag", id);
},
/**
* 初始化字段(包括表单验证,以及绑定数据的子集配置)
*/
initFields() {
var self = this;
var ifInitRules = false;
ifInitRules = JSON.stringify(self.rules) == "{}";
for (var i = 0; i < this.propFormField.length; i++) {
//遍历可配置化数组
if (ifInitRules) {
if (this.propFormField[i].prop) {
this.rules[this.propFormField[i].id] = this.$rules[
this.propFormField[i].prop
];
//如果有规则的话 拿到全局的规则 规则是一个数组,数组里是对象 将规则复制到所绑定的对象那个中去,然后每一项绑定对象
}
}
if (
this.propFormField[i].multiple === true &&
this.propFormField[i].type === "code"
) {
//判断下拉框是否可以多选
// self.formLabelAlign[this.propFormField[i].id] = ""
self.$set(self.formLabelAlign, this.propFormField[i].id, []);
//给self.formLabelAlign 给每个匹配到的id属性值 添加一个空数组
}
if (this.propFormField[i].type === "file") {
//判断文件上传
// self.formLabelAlign[this.propFormField[i].id] = ""
if (this.propFormField[i].fileId) {
self.$set(self.fileLists, this.propFormField[i].fileId, []);
} else {
self.$set(self.fileLists, this.propFormField[i].id, []);
}
//给self.formLabelAlign 给每个匹配到的id属性值 添加一个空数组
}
if (this.propFormField[i].childrenAsAdd) {
//遍历可配置化列表的子集
this.propFormField[i].childrenAsAdd.forEach((item2) => {
self.$set(self.formLabelAlign, item2.id, []);
//拿到id对应的值 给添加空数组
item2.list.forEach((val3, index3) => {
var singleObject = {};
val3.name.forEach((val4) => {
if (val4.multiple == true && val4.type == "code") {
singleObject[val4.id] = [];
} else {
singleObject[val4.id] = "";
}
var rulesName = item2.id + "." + val4.id;
if (ifInitRules) {
this.rules[rulesName] = this.$rules[val4.prop];
}
});
self.$set(self.formLabelAlign[item2.id], index3, singleObject);
});
});
}
if (this.propFormField[i].children) {
//遍历可配置化列表的子集
this.propFormField[i].children.forEach((item2) => {
self.$set(self.formLabelAlign, item2.id, "");
//拿到id对应的值 给添加空数组
if (ifInitRules) {
this.rules[item2.id] = this.$rules[item2.prop];
}
});
}
this.$forceUpdate();
}
},
//点击垃圾桶 删除表单
deleteObj(obj) {
let self = this;
self.propFormField.forEach((val) => {
if (val.childrenAsAdd) {
val.childrenAsAdd.forEach((val2) => {
self.formLabelAlign[val2.id].forEach((val3) => {
if (val3 == obj) {
self.formLabelAlign[val2.id].splice(val2.list.indexOf(val3), 1);
this.$message.success("删除成功");
}
});
});
}
});
},
//新增表单数据
handelFrom(obj) {
let self = this,
addObj;
var addchildren = {};
self.propFormField.forEach((val) => {
if (val.childrenAsAdd) {
val.childrenAsAdd.forEach((val2, index2) => {
//遍历list数组
if (val2 == obj) {
//通过比较两个对象是否相等 将formLabelAlign里绑定的数据复制了一份
addObj = JSON.parse(
JSON.stringify(self.formLabelAlign[val2.id][0])
);
//实现深拷贝赋值
for (var val3 in addObj) {
addObj[val3] = "";
}
self.$set(
self.formLabelAlign[val2.id],
self.formLabelAlign[val2.id].length,
addObj
);
this.$message.success("新增成功");
}
});
}
});
},
submit(bllx) {
var button = (document.getElementById("caiji").style.background =
"#1a81e1");
// 当点提交按钮的时候 按钮颜色改变
// if (this.fileLists.hcbgDzwd || this.fileLists.szqzySmj) {
// if (this.fileLists.hcbgDzwd.length == 0 || this.fileLists.szqzySmj.length == 0) {
// this.$message.error("保存失败,请上传附件");
// return
// }
// }
var self = this;
this.$refs.formLabelAlign.validate((valid) => {
if (valid) {
//使用FormData构造函数创建一个空对象
var params = new FormData();
//可以通过append()方法来追加数据
this.propFormField.forEach((item) => {
//1.普通字段处理
if (item.type !== "file") {
//1.1二级字典处理
if (item.type == "lazyCodeTree") {
if (item.isSt && self.formLabelAlign[item.id]) {
params.append(
item.isSt + "." + item.id,
self.formLabelAlign[item.id]
);
} else {
self.formLabelAlign[item.id] = self.formLabelAlign[item.id]
? self.formLabelAlign[item.id][
self.formLabelAlign[item.id].length - 1
]
: "";
console.log(self.formLabelAlign[item.id]); //二级字典取到的是一个数组,value : ["111",''112] 拿到数组里的第二个值
if (self.formLabelAlign[item.id]) {
//如果这个有值的话就添加到参数里
params.append(
self.propSt + "." + item.id,
self.formLabelAlign[item.id]
);
console.log(
"2)二级字典处" + this.propSt + item.id,
self.formLabelAlign[item.id]
);
}
}
} else if (item.type == "date" || item.type == "dates") {
debugger;
//如果他的类型是date 时间框
if (self.formLabelAlign[item.id]) {
//调用函数 拿到时间格式的字符串
var time = "";
if (item.id != "fkqx") {
time =
utilTool.timeStampTurnTime(
self.formLabelAlign[item.id]
) || "";
} else {
time = self.formLabelAlign[item.id].substring(0, 10) || "";
}
if (self.formLabelAlign[item.id]) {
params.append(self.propSt + "." + item.id, time);
}
}
} else if (item.type == "codeTag") {
if (self.formLabelAlign[item.id]) {
if (item.multiple) {
params.append(
self.propSt + "." + item.id,
self.formLabelAlign[item.id][
self.formLabelAlign[item.id].length - 1
]
);
} else {
params.append(
self.propSt + "." + item.id,
self.formLabelAlign[item.id]
);
}
}
}
//1.2普通字段处理
else {
if (self.formLabelAlign[item.id]) {
console.log(self.formLabelAlign[item.id]);
if (item.isSt && self.formLabelAlign[item.id]) {
params.append(
item.isSt + "." + item.id,
self.formLabelAlign[item.id]
);
} else if (item.radioStr) {
var radioParams = [];
var isHas = "0";
for (var i = 0; i < self.selectId.length; i++) {
if (self.ednId) {
isHas = self.ednId.findIndex((endItem) => {
return endItem == self.selectId[i];
});
}
if (isHas >= 0) {
radioParams.push(1);
} else {
radioParams.push(0);
}
}
params.append(
self.propSt + "." + item.id,
radioParams.toString()
);
} else {
params.append(
self.propSt + "." + item.id,
self.formLabelAlign[item.id]
);
}
}
console.log(
"1)普通字段处" + this.propSt + "." + item.id,
self.formLabelAlign[item.id]
);
}
}
//2.有children表单数据处理
if (item.children) {
item.children.forEach((subItem) => {
if (subItem.type !== "file") {
//1.1二级字典处理
if (subItem.type == "lazyCodeTree") {
if (subItem.isSt && self.formLabelAlign[subItem.id]) {
params.append(
subItem.isSt + "." + subItem.id,
self.formLabelAlign[subItem.id]
);
} else {
self.formLabelAlign[subItem.id] = self.formLabelAlign[
subItem.id
]
? self.formLabelAlign[subItem.id][
self.formLabelAlign[subItem.id].length - 1
]
: "";
console.log(self.formLabelAlign[subItem.id]); //二级字典取到的是一个数组,value : ["111",''112] 拿到数组里的第二个值
if (self.formLabelAlign[subItem.id]) {
//如果这个有值的话就添加到参数里
params.append(
self.propSt + "." + subItem.id,
self.formLabelAlign[subItem.id]
);
console.log(
"2)二级字典处" + this.propSt + subItem.id,
self.formLabelAlign[subItem.id]
);
}
}
} else if (
subItem.type == "date" ||
subItem.type == "dates"
) {
//如果他的类型是date 时间框
debugger;
if (self.formLabelAlign[subItem.id]) {
debugger;
//调用函数 拿到时间格式的字符串
var time = "";
if (subItem.id != "fkqx") {
time =
utilTool.timeStampTurnTime(
self.formLabelAlign[subItem.id]
) || "";
} else {
time =
self.formLabelAlign[subItem.id].substring(0, 10) ||
"";
}
if (self.formLabelAlign[subItem.id]) {
params.append(self.propSt + "." + subItem.id, time);
}
}
} else if (subItem.type == "codeTag") {
if (self.formLabelAlign[subItem.id]) {
if (subItem.multiple) {
params.append(
self.propSt + "." + subItem.id,
self.formLabelAlign[subItem.id][
self.formLabelAlign[subItem.id].length - 1
]
);
} else {
params.append(
self.propSt + "." + subItem.id,
self.formLabelAlign[subItem.id]
);
}
}
}
//1.2普通字段处理
else {
if (self.formLabelAlign[subItem.id]) {
console.log(self.formLabelAlign[subItem.id]);
if (subItem.isSt && self.formLabelAlign[subItem.id]) {
params.append(
subItem.isSt + "." + subItem.id,
self.formLabelAlign[subItem.id]
);
} else if (subItem.radioStr) {
var radioParams = [];
var isHas = "0";
for (var i = 0; i < self.selectId.length; i++) {
if (self.ednId) {
isHas = self.ednId.findIndex((endsubItem) => {
return endsubItem == self.selectId[i];
});
}
if (isHas >= 0) {
radioParams.push(1);
} else {
radioParams.push(0);
}
}
params.append(
self.propSt + "." + subItem.id,
radioParams.toString()
);
} else {
params.append(
self.propSt + "." + subItem.id,
self.formLabelAlign[subItem.id]
);
}
}
console.log(
"1)普通字段处" + this.propSt + "." + subItem.id,
self.formLabelAlign[subItem.id]
);
}
}
});
}
//2.有childrenAsAdd表单数据处理
if (item.childrenAsAdd) {
item.childrenAsAdd.forEach((subItem) => {
if (subItem.flag == self.formLabelAlign[item.id]) {
//如果遍历到的编号和所选择的编号一致
self.formLabelAlign[subItem.id].forEach((val5, index) => {
//遍历每一个数组的值
for (var ite in val5) {
//数组里对象 在遍历对象
if (val5[ite]) {
//如果有值的话
var currentc = subItem.list[0].name.find((item) => {
return item.id == ite;
});
if (currentc && currentc.type == "date") {
if (val5[ite]) {
var time =
utilTool.timeStampTurnTime(val5[ite]) || "";
params.append(
subItem.id + "[" + index + "]." + ite,
time
);
}
} else if (
currentc &&
currentc.type == "code" &&
currentc.multiple == true
) {
if (val5[ite].length != 0) {
params.append(
subItem.id + "[" + index + "]." + ite,
val5[ite]
);
}
console.log(
"5)政治人员身份" +
subItem.id +
"[" +
index +
"]." +
ite,
val5[ite]
);
} else if (
currentc &&
currentc.type == "lazyCodeTree"
) {
val5[ite] = val5[ite]
? val5[ite][val5[ite].length - 1]
: "";
if (val5[ite]) {
//如果这个有值的话就添加到参数里
params.append(
subItem.id + "[" + index + "]." + ite,
val5[ite]
);
}
} else {
console.log(
"3)有子级表单数据处理." +
subItem.id +
"[" +
index +
"]." +
ite,
val5[ite]
);
params.append(
subItem.id + "[" + index + "]." + ite,
val5[ite]
);
}
}
}
});
}
});
}
});
for (var i = 0; i < self.tableSelect.length; i++) {
// params.append("xsfj", this.tableSelect[i].raw);
self.propFormField[9].children[0].showTable.tableList.forEach(
(subItem) => {
params.append(
"user" + "[" + i + "]" + "." + subItem.prop,
self.tableSelect[i][subItem.prop]
);
}
);
}
for (var fileItem in self.fileLists) {
for (var i = 0; i < self.fileLists[fileItem].length; i++) {
if (self.fileLists[fileItem][i].raw) {
params.append(fileItem, self.fileLists[fileItem][i].raw);
}
}
}
var issubmit = true;
if (bllx != "0") {
params.append("bllx", bllx);
if (bllx == "16") {
if (self.fileLists.hcbgDzwd.length == 0) {
issubmit = false;
self.$message.error("保存失败,请填加核查报告电子文档附件");
} else if (self.fileLists.szqzySmj.length == 0) {
issubmit = false;
self.$message.error("保存失败,请填加三长签字扫描件附件");
} else {
issubmit = true;
}
}
}
if (issubmit) {
this.$emit("submit", params);
}
} else {
setTimeout(() => {
this.$message("请填写必填字段");
return false;
}, 1000);
}
});
},
handleRemove(file, fileList, item) {
if (item.fileId) {
this.fileLists[item.fileId] = fileList;
} else {
this.fileLists[item.id] = fileList;
}
},
handleChange(file, fileList, item) {
if (item.fileId) {
this.fileLists[item.fileId].push(file);
} else {
this.fileLists[item.id].push(file);
}
this.$refs.formLabelAlign.clearValidate();
},
httpRequest(data) {
// console.log(data);
},
handleNumber() {},
getCodeDm(obj, type) {
queryCodeByType({
type: type,
})
.then((res) => {
// console.log(res.rows)
obj.codeOptions = res.rows;
//调用字典接口,后台返回的数组赋值给codeOptions 然后在视图上遍历展示
})
.catch((err) => {
debugger;
this.$message.error("数据加载失败");
});
},
/**
* 下拉框值改变事件(当有子集时子集的值初始化为空)
*/
selectChanged(value, item) {
var self = this;
if (!self.$route.meta.isUpdata) {
//如果条件为真
if (item.childrenAsAdd) {
//如果有这个子孩子的话,遍历每一项 将每一项的id复制给一个变量
item.childrenAsAdd.forEach((childrenItem) => {
var childrenItemName = childrenItem.id;
//拿到每个list里的name遍历数组,拿到每个值
childrenItem.list[0].name.forEach((singleListName) => {
//拿到所绑定的值 id值 xsglxyr:[{1."",2:"",}]
self.formLabelAlign[childrenItemName].forEach((realDataItem) => {
//如果对象里有多选且类型等于code时,给一个空数组
if (
singleListName.multiple == true &&
singleListName.type == "code"
) {
self.$set(realDataItem, singleListName.id, []);
} else if (
singleListName.type == "lazyCodeTree" ||
singleListName.type == "codeTag"
) {
//如果等于二级字典时 也给一个空数组,因为他们所绑定的是数组
self.$set(realDataItem, singleListName.id, []);
} else {
//否则就是一个空字符串
self.$set(realDataItem, singleListName.id, "");
}
});
});
});
}
}
},
/**
* 展示字典树弹出框
*/
showCodeTreeDialog(value, item, realFormLableAlign, realValueKey) {
var self = this;
if (value) {
self.filterText = "";
self.codeTreeConfig.nodeKey = "value";
self.codeTreeConfig.codeType = item.codeTree;
self.codeTreeConfig.codeId = "";
self.codeTreeConfig.fieldItem = item;
self.codeTreeConfig.realFatherValue = realFormLableAlign;
self.codeTreeConfig.realrValueKey = realValueKey;
//先设置一个默认空值
self.codeTreeConfig.realValue = realFormLableAlign[realValueKey];
self.codeTreeConfig.title = item.name.substring(
0,
item.name.indexOf(":")
);
//延迟加载使弹框的z-index值在el-select之上
setTimeout(() => {
self.dialogCodeVisible = true;
}, 10);
let id = JSON.parse(window.localStorage.getItem("user")).unitcode;
if (
item.xdzljsdw == "1" &&
id.substring(2, 12) != "0000000000" &&
id != ""
) {
//下达指令接收单位时,判断是否为省级用户,
queryCodeByType({
type: "CODE_UNIT",
id: id,
})
.then((res) => {
self.codeTreeConfig.props = res.rows;
})
.catch((err) => {
console.log(err);
});
} else {
let Filename = "",
grade = "";
grade = JSON.parse(window.localStorage.getItem("user")).grade;
if (item.id == "hczlztdm") {
Filename = self.codeTreeConfig.codeType + "_" + grade;
} else if (item.id == "hczlztdm_2nd") {
if (grade == "S") {
Filename = self.codeTreeConfig.codeType + "_D";
} else if (grade == "D") {
Filename = self.codeTreeConfig.codeType + "_X";
}
} else {
Filename = self.codeTreeConfig.codeType;
}
axios
.get(`JsonData/${Filename}.json`)
.then((res) => {
self.codeTreeConfig.props = res.data.rows;
})
.catch((err) => {
console.log(err);
});
}
}
},
/**
* 展示字典树弹出框
*/
showCodeTreeDialogTag(value, item, realFormLableAlign, realValueKey) {
debugger;
if (value) {
var self = this;
self.codeTreeConfig.nodeKey = "value";
self.codeTreeConfig.codeType = item.codeTree;
self.codeTreeConfig.codeId =
JSON.parse(window.localStorage.getItem("user")).unitcode.substring(
2,
12
) == "0000000000"
? ""
: JSON.parse(window.localStorage.getItem("user")).unitcode;
self.codeTreeConfig.fieldItem = item;
self.codeTreeConfig.realFatherValue = realFormLableAlign;
self.codeTreeConfig.realrValueKey = realValueKey;
//先设置一个默认空值
self.codeTreeConfig.realValue = realFormLableAlign[realValueKey];
self.codeTreeConfig.title = item.name.substring(
0,
item.name.indexOf(":")
);
//延迟加载使弹框的z-index值在el-select之上
setTimeout(() => {
self.dialogCodeVisible = true;
}, 10);
}
},
//获取子节点方法
loadCodeTreeNode(node, resolve) {
var self = this;
debugger;
if (node.level == 0 || node.data.isParent) {
var nodeId = node.data?.value || self.codeTreeConfig.codeId;
queryCodeByType({
type: self.codeTreeConfig.codeType,
id: nodeId,
})
.then((res) => {
res.rows.forEach((item) => {
if (
self.codeTreeConfig.codeType == "CODE_SHCE_XSLYDM" &&
item.isParent == true
) {
item.disabled = true;
} else {
item.disabled = false;
}
});
const nodes = res.rows.map((item) => ({
value: item.id,
label: item.name,
isParent: item.isParent,
leaf: !item.isParent,
disabled: item.disabled,
// leaf: level >= 2
}));
// 通过调用resolve将子节点数据返回,通知组件数据加载完成
resolve(nodes);
//val.codeOptions = res.rows;
})
.catch((err) => {
console.log(err);
});
} else {
resolve([]);
}
},
handleNodeClick(data, checked) {
var self = this;
if (!self.codeTreeConfig.fieldItem.multiple) {
if (checked === true) {
self.codeTreeConfig.codeId = data.id;
self.$refs.codeTreeDialog.setCheckedKeys([data.id]);
} else {
if (self.codeTreeConfig.codeId === data.id) {
self.$refs.codeTreeDialog.setCheckedKeys([]);
}
}
}
},
//树形字典节点点击事件(用来拦截并控制单选)
codeTreeNodeCheck(data, checked, node) {
/*var self = this;
if (!self.codeTreeConfig.fieldItem.multiple) {
this.$refs.codeTreeDialog.setCheckedNodes([data]);
}*/
},
//确定选择当前用户
forSureSelectCode() {
var self = this;
var thisCodeOptions = [];
if (self.$refs.codeTreeDialog.getCheckedNodes().length != 0) {
if (self.codeTreeConfig.fieldItem.multiple) {
self.$set(
self.codeTreeConfig.realFatherValue,
self.codeTreeConfig.realrValueKey,
self.$refs.codeTreeDialog.getCheckedKeys()
);
var selectedNodes = self.$refs.codeTreeDialog.getCheckedNodes();
for (var i = 0; i < selectedNodes.length; i++) {
thisCodeOptions.push({
id: self.$refs.codeTreeDialog.getCheckedNodes()[i].id,
name: self.$refs.codeTreeDialog.getCheckedNodes()[i].label,
});
}
} else {
self.$set(
self.codeTreeConfig.realFatherValue,
self.codeTreeConfig.realrValueKey,
self.$refs.codeTreeDialog.getCheckedNodes()[0].id
);
thisCodeOptions.push({
id: self.$refs.codeTreeDialog.getCheckedNodes()[0].id,
name: self.$refs.codeTreeDialog.getCheckedNodes()[0].label,
});
}
self.codeTreeConfig.fieldItem.codeOptions = thisCodeOptions;
if (self.codeTreeConfig.fieldItem.type == "codeTag") {
self.changeTags(
self.$refs.codeTreeDialog.getCheckedKeys(),
self.codeTreeConfig.fieldItem
);
}
}
this.$emit("getJsdwGajgjgdm", this.formLabelAlign.jsdwGajgjgdm);
self.$forceUpdate();
self.dialogCodeVisible = false;
self.codeTreeConfig.props = [];
},
getFormStyle(isBlock) {
if (isBlock) {
this.colNumber = 0;
return {
display: "block",
"margin-left": this.colNum % 3 == 2 ? "20px" : "0",
};
} else {
this.colNumber++;
return {
display: "inline-block",
"margin-left": this.colNum % 3 == 2 ? "20px" : "0",
};
}
},
},
mounted() {
//初始化就调用字典的接口
let self = this;
self.propFormField.forEach((val) => {
if (val.type == "code") {
//一级
//遍历数组找到每一项里的下拉框调用getCodeDm函数,
self.getCodeDm(val, val.codeTree);
} else if (val.type == "radioBotton" || val.type == "radios") {
if (val.codeTree) {
queryCodeByType({
type: val.codeTree,
}).then((res) => {
val.radioData = res.rows;
});
}
}
if (val.children) {
//子集
val.children.forEach((val2) => {
if (val2.type == "code") {
self.getCodeDm(val2, val2.codeTree);
//遍历子集里的类型来判断下拉框,将遍历到的参数拿到给
} else if (val2.type == "codeTag") {
queryCodeByType({
type: val2.codeTree,
})
.then((res) => {
if (val2.codeOptions.length == 0) {
val2.codeOptions = res.rows.map((item) => ({
value: item.id,
label: item.name,
isParent: item.isParent,
leaf: !item.isParent,
// leaf: level >= 2
}));
}
})
.catch((err) => {
// console.log(err);
});
val2.props = {
lazy: true,
checkStrictly: true,
lazyLoad(node, resolve) {
if (node.data && node.data.isParent) {
queryCodeByType({
type: val2.codeTree,
id: node.value,
})
.then((res) => {
const nodes = res.rows.map((item) => ({
value: item.id,
label: item.name,
isParent: item.isParent,
leaf: !item.isParent,
}));
resolve(nodes);
})
.catch((err) => {
console.log(err);
});
} else {
}
},
};
} else if (val2.type == "radioBotton" || val2.type == "radios") {
if (val2.codeTree) {
queryCodeByType({
type: val2.codeTree,
}).then((res) => {
val2.radioData = res.rows;
});
}
}
});
}
if (val.childrenAsAdd) {
//可添加得子集
val.childrenAsAdd.forEach((val2) => {
val2.list.forEach((val3) => {
val3.name.forEach((val4) => {
if (val4.type == "code") {
self.getCodeDm(val4, val4.codeTree);
} else if (val4.id == "tbrxm") {
self.bool = false;
} else if (val4.type == "codeTag") {
queryCodeByType({
type: val4.codeTree,
})
.then((res) => {
if (val4.codeOptions.length == 0) {
val4.codeOptions = res.rows.map((item) => ({
value: item.id,
label: item.name,
isParent: item.isParent,
leaf: !item.isParent,
// leaf: level >= 2
}));
}
})
.catch((err) => {
// console.log(err);
});
val4.props = {
lazy: true,
checkStrictly: true,
lazyLoad(node, resolve) {
if (node.data && node.data.isParent) {
queryCodeByType({
type: val4.codeTree,
id: node.value,
})
.then((res) => {
const nodes = res.rows.map((item) => ({
value: item.id,
label: item.name,
isParent: item.isParent,
leaf: !item.isParent,
}));
resolve(nodes);
})
.catch((err) => {
console.log(err);
});
} else {
}
},
};
}
});
});
});
}
});
},
watch: {
filterText(val) {
this.$refs.codeTreeDialog.filter(val);
},
formLabelAlign: {
handler(newName, oldName) {
if (this.formLabelAlign.hasOwnProperty("editing")) {
for (var i = 0; i < this.formField.length; i++) {
if (this.formField[i].type == "file") {
if (this.formField[i].fileId) {
this.fileLists[this.formField[i].fileId] = this.formLabelAlign[
this.formField[i].id
];
} else {
this.fileLists[this.formField[i].id] = this.formLabelAlign[
this.formField[i].id
];
}
}
}
}
},
deep: true,
},
// rules: {
// handler: function (val) {
// this.$forceUpdate();
// },
// immediate: true,
// deep: true,
// },
},
};
</script>
<style lang="scss">
#formCommonPage {
font-family: Microsoft YaHei;
}
.el-form-item__content {
margin-left: 160px !important;
}
.el-dialog__header {
background: #1a81e1;
}
.el-form-item__label {
width: 144px !important;
padding-right: 0;
font-size: 14px;
color: #666666;
opacity: 1;
}
.allForm {
.el-input {
width: 220px;
}
.el-textarea {
width: 620px;
.el-textarea__inner {
height: 72px !important;
}
}
.el-input__inner {
height: 36px;
}
}
.el-dialog__headerbtn .el-dialog__close {
color: #fff;
}
/*覆盖ui库得样式,在scoped里没效果*/
#formCommonPage .el-date-editor--daterange.el-input__inner,
#formCommonPage,
#formCommonPage .el-select .el-cascader {
line-height: 36px;
border-radius: 2px;
/* width: 90%; */
width: 360px;
}
#formCommonPage .el-upload-list__item {
width: auto;
width: 372px;
height: 37px;
display: inline-block;
margin-right: 15px;
}
#formCommonPage .el-date-editor .el-cascader .el-range-input {
background: #f4f6f7;
}
#formCommonPage .zdyInputCol2 .el-input__inner {
width: 100%;
}
#formCommonPage .el-form-item {
/* margin: 12px 0; */
margin-top: 8px;
margin-bottom: 0 !important;
}
/* #formCommonPage .item1 {
margin: 8px 0;
} */
.el-upload-list__item .el-icon-close {
top: 9px;
right: 13px;
}
#formCommonPage .el-upload-list__item {
/* width: auto; */
display: inline-block;
margin-right: 12px;
width: 280px;
height: 40px;
}
.el-input-number {
width: 150px;
}
.el-form-item.is-error .el-input__inner {
border: 1px solid #f2f2f2;
}
.el-upload-list__item-name {
line-height: 36px;
padding-left: 20px;
font-size: 12px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #333333;
}
#formCommonPage .el-date-editor.el-range-editor {
width: 85%;
}
.itemchildtext .el-textarea__inner {
background-color: #fff;
width: 520px;
height: 70px !important;
font-size: 14px;
font-family: Microsoft YaHei;
}
.itemtextarea .el-textarea__inner {
background: #f4f6f7;
width: 600px;
height: 96px !important;
font-size: 14px;
font-family: Microsoft YaHei;
font-weight: 400;
}
.itemxsdet .el-textarea__inner {
background: #f4f6f7;
width: 600px;
height: 76px !important;
font-size: 14px;
font-family: Microsoft YaHei;
font-weight: 400;
}
.itemhcbg .el-textarea__inner {
background: #f4f6f7;
width: 720px;
height: 96px !important;
font-size: 14px;
font-family: Microsoft YaHei;
font-weight: 400;
}
.addContent .el-form-item__label {
font-size: 14px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #666666;
opacity: 1;
}
.Inputbj .el-input--suffix .el-input__inner {
background-color: #f4f6f7;
width: 360px;
width: 100%;
}
.iteminput .el-input--suffix .el-input__inner {
background-color: #f4f6f7;
width: 320px;
}
</style>
<style scoped lang="scss">
$-header-bg: #1a81e1;
$-header-height: 60px;
$-header-fontSize: 18px;
#formCommonPage {
width: 100%;
.formContent {
margin: 0 auto;
width: 1280px;
padding-top: 20px;
/deep/#caiji.el-button.grey {
background: #c8c9cc !important;
}
.formHeader {
margin: 0 52px;
.formTitle {
font-size: 20px;
line-height: 26px;
font-weight: bold;
color: #343a3f;
}
.divider {
margin-top: 12px;
border-bottom: solid 1px #d4d4d4;
}
}
.allForm {
margin-top: 8px;
margin-bottom: 24px;
}
.addChildBtn {
margin: 12px 0 0px 0;
.el-button {
text-align: left;
text-indent: 24px;
background: rgba(255, 218, 185, 0.2);
border-radius: 4px;
color: #fe9200;
border: none;
width: 929px;
margin-left: 140px;
}
}
.iconfankuixuanzhong {
margin-right: 3px;
}
.dormitoryData {
margin-bottom: 20px;
}
.item3 {
display: inline-block;
width: 45%;
.el-input .el-input--suffix {
width: 100%;
}
}
.item4 {
width: 100%;
}
.item2,
.zdycol2 {
display: inline-block;
width: max-content;
}
.item5 {
width: 45%;
display: block;
}
.item6 {
width: 45%;
display: inline-block;
}
.item8 {
width: 109%;
display: inline-block;
}
.item1,
.zdycol1 {
display: inline-block;
width: 100%;
}
.item1col2 {
display: inline-block;
.el-select {
width: 360px;
height: 36px;
}
}
#caiji {
margin-left: 189px;
width: 168px;
height: 48px;
margin-top: 28px;
margin-bottom: 40px;
background: #1a81e1;
border-radius: 4px;
}
.zdyInputW {
width: 100%;
height: 40px;
.lazydate {
width: 100%;
}
.lazysjdq {
line-height: 36px;
background: #f4f6f7;
border-radius: 2px;
/* width: 90%; */
width: 360px;
}
.el-cascader {
width: 85%;
}
}
.zdyInputCol2 {
width: 90%;
.el-input {
width: calc((100% - 24px) / 2);
}
}
.childrenAsAdd {
.el-select {
width: 100%;
}
.item2,
.item1 {
margin: 12px 0;
margin-top: 14px;
}
.addName {
display: inline-block;
width: 128px;
text-align: right;
vertical-align: top;
font-size: 14px;
color: #fe9200;
line-height: 100px;
padding: 0 12px 0 0;
font-family: Microsoft YaHei;
font-weight: 400;
}
.addContent {
width: 929px;
display: inline-block;
background: #fafafa;
border-radius: 4px;
padding-bottom: 24px;
position: relative;
margin-top: 16px;
.el-input,
.el-select,
el-date-editor {
width: 85%;
}
.zdyicon {
position: absolute;
right: 20px;
top: 5px;
font-size: 16px;
color: #8c97a0;
cursor: pointer;
}
}
}
.day {
width: 100%;
}
.codeTag .tag {
width: 100%;
}
}
}
.fj_wrap {
display: flex;
flex-wrap: wrap;
// width: calc(100% - 130px);
.fe_title {
width: calc(100% - 130px);
line-height: 40px;
min-width: 116px;
}
.fj_item {
background: #fcfcfd;
width: 400px;
margin-right: 20px;
margin-top: 10px;
display: flex;
justify-content: space-between;
align-items: center;
height: 40px;
.fj_name {
margin-left: 20px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
cursor: default;
color: #333;
i {
margin-right: 5px;
color: #ffa456;
}
span {
color: #333333;
}
}
.cz {
color: $base-color;
display: flex;
width: 60px;
justify-content: space-between;
&:hover {
cursor: pointer;
}
}
}
}
</style>
......@@ -320,7 +320,7 @@ export default [
auth: "5",
isUpdata: false
},
component: () => import("@/views/caseFocusOnPerson/gzryEdit.vue")
component: () => import("@/views/caseFocusOnPerson/gzryForm.vue")
},
{
path: "/caseStatistics",
......
<template>
<div class="xsform"
v-loading="loading">
<form-commonPage :formField="formField"
:headerTitle="headerTitle"
:formLabelAlign="formLabelAlign"
:rule="rules"
:propSt="st"
@submit='callSubmit'
class="callForm">
<span slot="button">采集入库</span>
</form-commonPage>
<div class="xsform" v-loading="loading">
<div class="header">
<i class="iconfont iconzonghedangan"></i
><span>{{ isAlter ? "修改" : "新增" }}公职人员信息</span>
<div class="divider"></div>
</div>
<div class="main">
<form-commonPage
:formField="formField"
:headerTitle="(isAlter ? '修改' : '新增') + '公职人员信息'"
:formLabelAlign="formLabelAlign"
:rule="rules"
:propSt="st"
class="callForm"
>
</form-commonPage>
<div class="relateCaseForm">
<div class="relateTitle">
<p class="formTitle">{{ isAlter ? "修改" : "添加" }}关联案件</p>
<div class="divider"></div>
</div>
<div class="relateHeader">
<span class="name">主犯姓名:</span
><el-input class="search" v-model="nameSearch"
><template #append
><el-button
type="primary"
icon="el-icon-search"
@click="getRelatedCase()"
>查询</el-button
></template
></el-input
>
<span class="tips">按主犯姓名查询案件添加</span>
</div>
<div class="relateMain">
<el-table class="tableFooter" :data="relatedCaseData.rows">
<el-table-column label="操作" width="157"> </el-table-column>
<el-table-column prop="laAjmc" label="案件名称" width="261">
</el-table-column>
<el-table-column prop="xxzjbh" label="案件编号" width="261">
</el-table-column>
<el-table-column prop="zztm" label="组织头目" width="261">
</el-table-column>
<el-table-column prop="sjdqXzqhdm" label="涉及地区">
</el-table-column>
</el-table>
<div class="footer">
<div style="display: inline-block;">
<el-select v-model="row" @change="getRelatedCase()">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</div>
<span style="font-size: 12px"
>共有{{ relatedCaseData.total }}条查询记录</span
>
<div class="right">
<el-pagination
@current-change="getRelatedCase()"
:page-size="row"
:current-page.sync="curPage"
layout="prev, pager, next"
:total="relatedCaseData.total"
>
</el-pagination>
</div>
</div>
</div>
<div class="relateFooter">
<el-button class="submitBtn" @click="callSubmit(formLabelAlign)"
>提交</el-button
>
<el-button class="saveBtn">保存</el-button>
</div>
</div>
</div>
</div>
</template>
<script>
import FormCommonPage from "@c/formCommonPage.vue";
import FormCommonPage from "@c/myFormCommonPage.vue";
import { queryCodeByType } from "@/api/xsInput/xsInput.js";
import { getGzGlajList } from "@/api/caseFocusOnPerson/gzryForm.js";
import { getGzryBybh, updateAjGzry } from "@/api/caseFocusOnPerson/gzry";
import { addGzry } from "@/api/caseFocusOnPerson/gzry";
export default {
name: "callForm",
components: {
FormCommonPage: FormCommonPage
FormCommonPage: FormCommonPage,
},
data () {
data() {
return {
headerTitle: "公职人员录入",
loading: false,
rules: {},
formLabelAlign: {
},
st: 'gzry',
formLabelAlign: {},
st: "gzry",
formField: [
{
name: "涉及地区:",
......@@ -45,6 +116,7 @@ export default {
codeTree: "CODE_XZQH",
col: "2",
bj: "Inputbj",
isBlock: true,
},
{
name: "姓名:",
......@@ -67,7 +139,7 @@ export default {
value: "",
isShow2: true,
placeholder: "请选择性别",
col: "2"
col: "2",
},
{
name: "出生日期:",
......@@ -77,20 +149,10 @@ export default {
value: "",
isShow2: true,
placeholder: "请选择出生日期",
col: "2"
},
{
name: "证件号码:",
id: "zjhm",
type: "text",
value: "",
isShow2: true,
prop: "emptyAbleIdentity",
placeholder: "请输入",
col: "2"
col: "2",
},
{
name: "证件类型:",
name: "常用证件:",
id: "cyzjdm",
type: "codeTree",
prop: "checkEmpty",
......@@ -99,9 +161,20 @@ export default {
value: "",
isShow2: true,
placeholder: "请选择",
col: "2"
col: "2",
},
{
name: "证件号码:",
id: "zjhm",
type: "text",
value: "",
isShow2: true,
prop: "emptyAbleIdentity",
placeholder: "请输入",
col: "2",
},
{
name: "涉案成员身份:",
id: "cysfdm",
type: "codeTree",
......@@ -111,7 +184,7 @@ export default {
value: "",
isShow2: true,
placeholder: "请选择",
col: "2"
col: "2",
},
// {
// name: "涉案成员身份:",
......@@ -134,27 +207,27 @@ export default {
value: "",
isShow2: true,
placeholder: "请输入",
col: "2"
col: "2",
},
{
name: "职务名称:",
name: "职务:",
id: "zwmc",
type: "text",
prop: "checkEmpty",
value: "",
isShow2: true,
placeholder: "请输入",
col: "2"
col: "2",
},
{
name: "级别名称:",
name: "级别:",
id: "jbmc",
type: "text",
value: "",
isShow2: true,
prop: "checkEmpty",
placeholder: "请输入",
col: "2"
col: "2",
},
{
name: "身份信息:",
......@@ -177,7 +250,7 @@ export default {
value: "",
isShow2: true,
placeholder: "请输入",
col: "2"
col: "2",
},
{
name: "案件定性:",
......@@ -247,7 +320,7 @@ export default {
bj: "Inputbj",
},
{
name: "纪委部门未反馈:",
name: "纪委监察部门未反馈:",
id: "jwbmwfkPdbz",
ids: "jwbmwfkPdbz",
type: "codeTree",
......@@ -268,17 +341,18 @@ export default {
isShow2: true,
prop: "checkEmpty",
placeholder: "请选择出生日期",
col: "2"
col: "2",
},
{
name: "犯罪事实:",
name: "认定犯罪事实:",
id: "fzssJyqk",
type: "text",
type: "textarea",
value: "",
isShow2: true,
placeholder: "请输入",
prop: "checkEmpty",
col: "2"
col: "2",
isBlock: true,
},
{
name: "备注:",
......@@ -288,7 +362,7 @@ export default {
prop: "checkEmpty",
value: "",
placeholder: "请输入",
col: "2"
col: "2",
},
{
name: "级别代码:",
......@@ -359,30 +433,434 @@ export default {
codeTree: "CODE_SHCE_JZDM",
col: "2",
bj: "Inputbj",
}
},
],
codeData: [], //线索来源字典
queryArr: []
queryArr: [],
relatedCaseData: { rows: [], total: 0 },
row: 1,
options: [
{
label: "每页1条",
value: 1,
},
{
label: "每页5条",
value: 5,
},
{
label: "每页10条",
value: 10,
},
{
label: "每页15条",
value: 15,
},
],
curPage: 1,
nameSearch: "",
isAlter: false,
};
},
created () {
created() {
this.initFields();
this.getFormData();
},
methods: {
//初始化表单
initFields () {
initFields() {
var self = this;
for (var i = 0; i < this.formField.length; i++) {
//遍历可配置化数组
if (this.formField[i].prop) {
this.rules[this.formField[i].id] = this.$rules[this.formField[i].prop];
this.rules[this.formField[i].id] = this.$rules[
this.formField[i].prop
];
//如果有规则的话 拿到全局的规则 规则是一个数组,数组里是对象 将规则复制到所绑定的对象那个中去,然后每一项绑定对象
}
}
},
//获取关联案件
getRelatedCase() {
getGzGlajList({
page: this.curPage,
rows: this.row,
zztm: this.nameSearch,
}).then((res) => {
this.relatedCaseData = res.data;
});
},
getFormData() {
let id = this.$route.query.xxzjbh;
if (!id) {
return;
}
this.isAlter = true;
var self = this;
var entityName = "gzry";
getGzryBybh({
xxzjbh: id,
}).then((res) => {
var result = res.data;
self.formField.forEach((fieldItem) => {
var fieldVale;
if (entityName) {
if (result[entityName] && fieldItem.id) {
fieldVale = result[entityName][fieldItem.id];
} else {
fieldVale = result[fieldItem.id];
}
}
if (fieldItem.multiple === true && fieldItem.type === "code") {
if (fieldVale) {
if (typeof fieldVale == "string") {
self.$set(
self.formLabelAlign,
fieldItem.id,
fieldVale.split(",")
);
} else {
self.$set(self.formLabelAlign, fieldItem.id, fieldVale);
}
} else {
self.$set(self.formLabelAlign, fieldItem.id, []);
}
} else if (fieldItem.type == "datearea") {
if (entityName) {
if (result[entityName]) {
if (
result[entityName][fieldItem.id_1] &&
result[entityName][fieldItem.id_1]
) {
self.$set(self.formLabelAlign, fieldItem.id, [
result[entityName][fieldItem.id_1],
result[entityName][fieldItem.id_2],
]);
} else {
if (result[entityName][fieldItem.id_1]) {
self.$set(self.formLabelAlign, fieldItem.id, [
result[entityName][fieldItem.id_1],
null,
]);
}
if (result[entityName][fieldItem.id_2]) {
self.$set(self.formLabelAlign, fieldItem.id, [
null,
result[entityName][fieldItem.id_2],
]);
}
}
} else {
if (result[fieldItem.id_1] && result[fieldItem.id_1]) {
self.$set(self.formLabelAlign, fieldItem.id, [
result[fieldItem.id_1],
result[fieldItem.id_2],
]);
} else {
if (result[fieldItem.id_1]) {
self.$set(self.formLabelAlign, fieldItem.id, [
result[fieldItem.id_1],
null,
]);
}
if (result[fieldItem.id_2]) {
self.$set(self.formLabelAlign, fieldItem.id, [
null,
result[fieldItem.id_2],
]);
}
}
}
} else {
if (result[fieldItem.id_1] && result[fieldItem.id_1]) {
self.$set(self.formLabelAlign, fieldItem.id, [
result[fieldItem.id_1],
result[fieldItem.id_2],
]);
} else {
if (result[fieldItem.id_1]) {
self.$set(self.formLabelAlign, fieldItem.id, [
result[fieldItem.id_1],
null,
]);
}
if (result[fieldItem.id_2]) {
self.$set(self.formLabelAlign, fieldItem.id, [
null,
result[fieldItem.id_2],
]);
}
}
}
} else if (fieldItem.type == "file") {
self.$set(self.formLabelAlign, fieldItem.id, []);
if (result[fieldItem.id]) {
result[fieldItem.id].forEach((fileItem, fileIndex) => {
const fileObj = {
name: fileItem.xsfjDzwjbt,
url: fileItem.xsfjDzwjwz,
xxzjbh: fileItem.xxzjbh,
};
self.$set(
self.formLabelAlign[fieldItem.id],
fileIndex,
fileObj
);
});
}
} else if (fieldItem.type == "checkboxBotton") {
if (fieldVale == 1) {
self.$set(self.formLabelAlign, fieldItem.id, true);
} else {
self.$set(self.formLabelAlign, fieldItem.id, false);
}
} else if (fieldItem.type == "lazyCodeTree") {
queryCodeByType({
type: fieldItem.codeTree,
id: fieldVale,
grade: "prev",
})
.then((codRes) => {
var codeArry = [];
var realCodeResult = [];
for (var j = 0; j < codRes.data.length; j++) {
var singleRow = codRes.data[j];
if (singleRow.children) {
codeArry.push(singleRow.id);
self.getChildrenCode(codeArry, singleRow);
}
}
codeArry.push(fieldVale);
self.$set(fieldItem, "type", "xsss");
self.$set(self.formLabelAlign, fieldItem.id, codeArry);
//改变类型使级联控件重新加载
setTimeout(() => {
self.$set(fieldItem, "type", "lazyCodeTree");
self.$set(self.formLabelAlign, fieldItem.id, codeArry);
}, 5);
})
.catch((err) => {
// console.log(err);
});
} else if (fieldItem.type == "codeTree") {
axios
.get(`JsonData/${fieldItem.codeTree}.json`)
.then((codRes) => {
let value = this.queryTree(codRes.data.data.rows, fieldVale)[0];
console.log(value);
fieldItem.codeOptions = [{ id: fieldVale, name: value }];
})
.catch((err) => {});
self.$set(self.formLabelAlign, fieldItem.id, fieldVale);
} else {
self.$set(self.formLabelAlign, fieldItem.id, fieldVale);
}
//有子集的情况
if (fieldItem.childrenAsAdd) {
//遍历可配置化列表的子集
fieldItem.childrenAsAdd.forEach((childrenIdem) => {
self.$set(self.formLabelAlign, childrenIdem.id, []);
var realChildrenData = result[childrenIdem.id];
if (realChildrenData && realChildrenData.length > 0) {
realChildrenData.forEach((realChildrenItem, childrenIndex) => {
var singleObject = {};
var dateFields = [];
var dateAreaFieldsItem = [];
var lazyLoadCodeFields = [];
var fileFields = [];
if (
childrenIdem.list &&
childrenIdem.list.length > 0 &&
childrenIdem.list[0].name
) {
dateFields = childrenIdem.list[0].name.filter(
(fieldItem) => {
return fieldItem.type == "dates";
}
);
dateFields = dateFields.map((fieldItem) => {
return fieldItem.id;
});
dateAreaFieldsItem = childrenIdem.list[0].name.filter(
(fieldItem) => {
return fieldItem.type == "datearea";
}
);
lazyLoadCodeFields = childrenIdem.list[0].name.filter(
(fieldItem) => {
return fieldItem.type == "lazyCodeTree";
}
);
lazyLoadCodeFields = dateFields.map((fieldItem) => {
return fieldItem.id;
});
fileFields = childrenIdem.list[0].name.filter(
(fieldItem) => {
return fieldItem.type == "file";
}
);
fileFields = fileFields.map((fieldItem) => {
return fieldItem.id;
});
}
for (var key in realChildrenItem) {
if (dateFields.indexOf(key) >= 0) {
//过滤时间
if (realChildrenItem[key]) {
//singleObject[key] = realChildrenItem[key]
singleObject[key] = new Date(realChildrenItem[key]);
} else {
singleObject[key] = "";
}
} else if (lazyLoadCodeFields.indexOf(key) >= 0) {
} else if (fileFields.indexOf(key) >= 0) {
// singleObject[key] = realChildrenItem[key]
if (key == "flwsfj" && realChildrenItem["flwsHx"]) {
singleObject[key] = [];
realChildrenItem["flwsHx"].forEach(
(realFileItem, realFileIndex) => {
const fileObj = {
name: realFileItem.flwsDzwjbt,
url: realFileItem.flwsDzwjwz,
xxzjbh: realFileItem.xxzjbh,
};
singleObject[key].push(fileObj);
}
);
} else {
singleObject[key] = [];
}
} else {
singleObject[key] = realChildrenItem[key];
}
}
debugger;
dateAreaFieldsItem.forEach((dateAreaItem) => {
singleObject[dateAreaItem.id] = [];
if (
dateAreaItem.id_1 &&
realChildrenItem[dateAreaItem.id_1]
) {
singleObject[dateAreaItem.id][0] = new Date(
realChildrenItem[dateAreaItem.id_1]
);
}
if (
dateAreaItem.id_2 &&
realChildrenItem[dateAreaItem.id_2]
) {
singleObject[dateAreaItem.id][1] = new Date(
realChildrenItem[dateAreaItem.id_2]
);
}
});
childrenIdem.list[0].name.forEach((currentField) => {
if (currentField.type == "lazyCodeTree") {
queryCodeByType({
type: currentField.codeTree,
id: realChildrenItem[currentField.id],
grade: "prev",
})
.then((codRes) => {
var codeArry = [];
var realCodeResult = [];
for (var j = 0; j < codRes.data.length; j++) {
var singleRow = codRes.data[j];
if (singleRow.children) {
codeArry.push(singleRow.id);
self.getChildrenCode(codeArry, singleRow);
}
}
codeArry.push(realChildrenItem[currentField.id]);
self.$set(
self.formLabelAlign[childrenIdem.id][childrenIndex],
currentField.id,
codeArry
);
//改变类型使级联控件重新加载
self.$set(currentField, "type", "lazyCodeTree2");
setTimeout(() => {
self.$set(currentField, "type", "lazyCodeTree");
self.$set(
self.formLabelAlign[childrenIdem.id][
childrenIndex
],
currentField.id,
codeArry
);
}, 5);
})
.catch((err) => {
// console.log(err);
});
} else if (currentField.type == "codeTree") {
axios
.get(`JsonData/${currentField.codeTree}.json`)
.then((codRes) => {
let value = this.queryTree(
codRes.data.data.rows,
realChildrenItem[currentField.id]
)[0];
currentField.codeOptions = [
{
id: realChildrenItem[currentField.id],
name: value,
},
];
})
.catch((err) => {});
self.$set(
self.formLabelAlign,
currentField.id,
realChildrenItem[currentField.id]
);
}
});
singleObject = $.extend(
true,
singleObject,
self.formLabelAlign[childrenIdem.id][childrenIndex]
);
self.$set(
self.formLabelAlign[childrenIdem.id],
childrenIndex,
singleObject
);
});
} else {
var singleObject = {};
childrenIdem.list[0].name.forEach((val4) => {
if (
(val4.multiple == true && val4.type == "code") ||
val4.type == "lazyCodeTree"
) {
singleObject[val4.id] = [];
} else {
singleObject[val4.id] = "";
}
});
self.$set(
self.formLabelAlign[childrenIdem.id],
0,
singleObject
);
}
});
}
self.$forceUpdate();
});
self.$forceUpdate();
setTimeout(() => {
self.loading = false;
}, 1000);
});
},
// 搜索树状数据中的 ID
queryTree (tree, id) {
const tmp = [] // 路径数组
queryTree(tree, id) {
const tmp = []; // 路径数组
const FindPos = (sourceTree, sourceId) => {
if (sourceTree.id == sourceId) {
tmp.push(sourceTree.label);
......@@ -390,39 +868,40 @@ export default {
} else {
if (sourceTree.children && sourceTree.children.length != 0) {
sourceTree.children.forEach((item) => {
if (item.id === sourceId) {// 寻找到指定的元素节点
if (item.id === sourceId) {
// 寻找到指定的元素节点
tmp.push(item.label);
FindPos(tree, sourceTree.id) // 继续寻找上层元素的位置
} else {// 当前继续寻找别的子项
FindPos(item, sourceId)
FindPos(tree, sourceTree.id); // 继续寻找上层元素的位置
} else {
// 当前继续寻找别的子项
FindPos(item, sourceId);
}
})
});
}
}
}
};
tree.forEach((item2) => {
FindPos(item2, id);
})
return tmp.reverse()
});
return tmp.reverse();
},
//提交
callSubmit (params) {
addGzry(params).then(res => {
callSubmit(params) {
addGzry(params).then((res) => {
if (res.code == 200) {
this.$message.success("保存成功");
window.opener.location.reload();
window.close()
this.$router.push({ path: '/gzryQuery', })
window.close();
this.$router.push({ path: "/gzryQuery" });
} else {
this.$message.error("保存失败");
}
})
});
},
/**
* 获取子字典数据
*/
getChildrenNode (singleRo, fieldVale) {
* 获取子字典数据
*/
getChildrenNode(singleRo, fieldVale) {
var self = this;
var resultItem = null;
singleRo.children.forEach((childrenItem) => {
......@@ -430,15 +909,15 @@ export default {
resultItem = childrenItem;
}
if (childrenItem.children && childrenItem.children.length > 0) {
resultItem = self.getChildrenNode(childrenItem, fieldVale)
resultItem = self.getChildrenNode(childrenItem, fieldVale);
}
});
return resultItem
return resultItem;
},
/**
* 获取子字典数据
*/
getChildrenCode (codeArry, singleRo) {
* 获取子字典数据
*/
getChildrenCode(codeArry, singleRo) {
var self = this;
singleRo.children.forEach((childrenItem) => {
if (childrenItem.children) {
......@@ -447,15 +926,14 @@ export default {
}
});
},
},
watch: {
'formLabelAlign.sfdm': {
handler (newName, oldName) {
"formLabelAlign.sfdm": {
handler(newName, oldName) {
var self = this;
debugger
if (newName == '0102') {
debugger
debugger;
if (newName == "0102") {
debugger;
self.formField[21].isShow2 = true;
self.formField[22].isShow2 = true;
self.formField[23].isShow2 = true;
......@@ -474,11 +952,11 @@ export default {
// deep: true,
// immediate: true
},
}
},
};
</script>
<style lang="scss" scoped>
<style lang="scss">
.xsform {
height: 100%;
padding-top: 72px;
......@@ -487,5 +965,154 @@ export default {
background-attachment: scroll;
max-height: calc(100vh - 100px);
overflow-y: scroll;
.header {
background: #0070f4;
line-height: 56px;
color: #fff;
font-family: Microsoft YaHei;
font-weight: 400;
position: fixed;
top: 0;
width: 100%;
z-index: 99;
i {
margin-left: 120px;
font-size: 24px;
}
span {
margin-left: 16px;
font-size: 20px;
}
}
.main {
width: 1280px;
margin: 0 auto;
border-radius: 8px;
background-color: #ffffff;
.relateCaseForm {
margin: 0 52px;
padding: 16px 0 36px 0;
overflow: hidden;
.relateTitle {
.formTitle {
font-size: 20px;
line-height: 26px;
font-weight: bold;
color: #343a3f;
}
.divider {
margin-top: 12px;
border-bottom: solid 1px #d4d4d4;
}
}
.relateHeader {
line-height: 40px;
margin-top: 16px;
.name {
margin-left: 33px;
font-size: 14px;
color: #222222;
}
.search {
margin-left: 16px;
width: max-content;
.el-input__inner {
width: 260px;
height: 40px;
}
.el-button {
width: 96px;
height: 40px;
background: #0081fc;
border-color: #0081fc;
color: #ffffff;
}
}
.tips {
margin-left: 36px;
font-size: 14px;
color: #ffac38;
}
}
.relateMain {
border: 1px solid #e6e6e6;
margin-top: 24px;
.el-table th {
padding: 0 !important;
background-color: #f2f2f2;
color: #333333;
font-weight: bold;
.cell {
padding: 0 0 0 20px;
}
}
.el-table td,
.el-table th {
height: 48px;
padding: 2px;
border-right: none;
}
.footer {
width: 1175px;
height: 48px;
margin: 0px auto;
// border: 1px solid #e6e6e6;
// border-top: none;
}
.footer .el-select {
width: 104px;
margin: 10px 24px 10px 20px;
}
.footer .el-select .el-input__inner {
height: 28px;
}
.footer .el-select .el-input .el-select__caret {
line-height: 28px;
}
.footer .right {
float: right;
margin: 11px 14px 11px 0px;
}
.footer .el-pagination button {
min-width: 20px !important;
height: 20px;
text-align: center;
background-color: #f1f3f6;
}
.footer .el-pagination .btn-next,
.el-pagination .btn-prev {
margin: 3px 7px;
padding: 0px;
}
}
.relateFooter {
margin-top: 16px;
.el-button {
width: 150px;
height: 40px;
float: right;
margin: 0 10px;
}
.saveBtn {
background-color: #fe9200;
font-size: 15px;
color: #ffffff;
}
.submitBtn {
background-color: #0070f4;
font-size: 15px;
color: #ffffff;
}
}
}
}
}
</style>
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