sasp-admin 0.2.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +227 -0
- package/package.json +19 -0
- package/router.js +83 -0
- package/src/assets/font/iconfont.css +1346 -0
- package/src/assets/font/iconfont.eot +0 -0
- package/src/assets/font/iconfont.js +1 -0
- package/src/assets/font/iconfont.svg +827 -0
- package/src/assets/font/iconfont.ttf +0 -0
- package/src/assets/font/iconfont.woff +0 -0
- package/src/assets/images/loading-bar.gif +0 -0
- package/src/assets/js/adminInstall.js +36 -0
- package/src/assets/js/api/apiAdmin.js +613 -0
- package/src/assets/js/global/dataGlobal.js +260 -0
- package/src/assets/js/global/logGlobal.js +22 -0
- package/src/assets/js/global/paramGlobal.js +67 -0
- package/src/assets/js/global/resGlobal.js +91 -0
- package/src/assets/js/global/userGlobal.js +283 -0
- package/src/components/complexViewRendering.vue +601 -0
- package/src/components/ifmLink.vue +71 -0
- package/src/components/public/data/plDataCascader.vue +85 -0
- package/src/components/public/data/plDataRadio.vue +73 -0
- package/src/components/public/data/plDataRadioGroup.vue +70 -0
- package/src/components/public/data/plDataSelect.vue +856 -0
- package/src/components/public/data/plDatePicker.vue +159 -0
- package/src/components/public/org/bg.png +0 -0
- package/src/components/public/org/sysOrgPosUserSelect.vue +1237 -0
- package/src/components/public/org/sysOrgPosUserSelectDark.vue +1402 -0
- package/src/components/public/org/sysOrgPosUserSelectNew.vue +1527 -0
- package/src/components/public/upload/images/compress.png +0 -0
- package/src/components/public/upload/images/emipty.png +0 -0
- package/src/components/public/upload/images/excel.png +0 -0
- package/src/components/public/upload/images/file.png +0 -0
- package/src/components/public/upload/images/pdf.png +0 -0
- package/src/components/public/upload/images/powerpoint.png +0 -0
- package/src/components/public/upload/images/project.png +0 -0
- package/src/components/public/upload/images/sound.png +0 -0
- package/src/components/public/upload/images/txt.png +0 -0
- package/src/components/public/upload/images/video.png +0 -0
- package/src/components/public/upload/images/visio.png +0 -0
- package/src/components/public/upload/images/word.png +0 -0
- package/src/components/public/upload/plImage.vue +287 -0
- package/src/components/public/upload/plImgUpload.vue +137 -0
- package/src/components/public/upload/plUpload.vue +1124 -0
- package/src/components/public/upload/uploadImg.js +8 -0
- package/src/main.js +0 -0
- package/src/views/VueMenuView.vue +143 -0
- package/src/views/cloudMenuView.vue +125 -0
- package/src/views/complex/config/complex.vue +501 -0
- package/src/views/complex/config/complexSetting.vue +1250 -0
- package/src/views/complex/rendering/complexShow.vue +16 -0
- package/src/views/data/dataManage.vue +560 -0
- package/src/views/data/sysData.vue +292 -0
- package/src/views/event/eventManager/vueEventDiy.vue +1184 -0
- package/src/views/event/eventManager/vueEventMain.vue +108 -0
- package/src/views/event/eventManager/vueEventSys.vue +296 -0
- package/src/views/event/js/apiEvent.js +22 -0
- package/src/views/fileLog/fileDownloadLog.vue +437 -0
- package/src/views/initData/initData.vue +4316 -0
- package/src/views/log/dblog/logdbDevelop.vue +306 -0
- package/src/views/log/dblog/logdbEnt.vue +331 -0
- package/src/views/log/dblog/logdbGov.vue +395 -0
- package/src/views/log/error/logError.vue +553 -0
- package/src/views/log/loginlog/logManageDevOrSup.vue +357 -0
- package/src/views/log/loginlog/logManageEnt.vue +343 -0
- package/src/views/log/loginlog/logManageGov.vue +328 -0
- package/src/views/log/sms/logSms.vue +308 -0
- package/src/views/menu/component/menuManageComponent.vue +2402 -0
- package/src/views/menu/component/menuModule.vue +449 -0
- package/src/views/menu/menuLocal.vue +223 -0
- package/src/views/menu/menuManage.vue +1135 -0
- package/src/views/menu/tenantMenuManage.vue +1132 -0
- package/src/views/menuRouter/cview/cviewShow.vue +18 -0
- package/src/views/menuRouter/cviewMenuRouter.vue +183 -0
- package/src/views/menuRouter/menuView.vue +132 -0
- package/src/views/menuRouter/urlMenuRouter.vue +160 -0
- package/src/views/org/entOrgTree.vue +1050 -0
- package/src/views/org/ownerMenu/ownerMenuTree.vue +269 -0
- package/src/views/org/safeValidate/safeValidate.vue +469 -0
- package/src/views/org/sysEntOrgUserDetail.vue +3390 -0
- package/src/views/org/sysOrgDimension.vue +832 -0
- package/src/views/org/sysOrgPosUserDetail.vue +1648 -0
- package/src/views/org/sysOrgPosUserTree.vue +1101 -0
- package/src/views/org/sysOrgTree.vue +864 -0
- package/src/views/param/sysParam.vue +987 -0
- package/src/views/preview/pdfViewer.vue +82 -0
- package/src/views/resources/js/resourcesCommon.js +137 -0
- package/src/views/resources/resRouter/resView.vue +161 -0
- package/src/views/resources/resourcesTabs.vue +82 -0
- package/src/views/resources/tabs/comp/pageResPreview.vue +309 -0
- package/src/views/resources/tabs/comp/pageResRegister.vue +1120 -0
- package/src/views/resources/tabs/dataResources.vue +843 -0
- package/src/views/resources/tabs/pageResources.vue +970 -0
- package/src/views/role/allowMenu.vue +148 -0
- package/src/views/role/authRole/authRole.vue +427 -0
- package/src/views/role/authRole/component/allocateSetting.vue +1056 -0
- package/src/views/role/authRole/component/authSetting.vue +1196 -0
- package/src/views/role/commonRole/commonRole.vue +677 -0
- package/src/views/role/commonRole/compoment/allocateRoleMenuSetting.vue +335 -0
- package/src/views/role/commonRole/compoment/authLinkMenuTree.vue +55 -0
- package/src/views/role/commonRole/compoment/authSettingNew.vue +190 -0
- package/src/views/role/commonRole/compoment/commonSetting.vue +1576 -0
- package/src/views/role/commonRole/compoment/commonSettingAdjust.vue +584 -0
- package/src/views/role/commonRole/compoment/commonSettingNew.vue +572 -0
- package/src/views/role/commonRole/compoment/roleMenuPower.vue +226 -0
- package/src/views/role/commonRole/compoment/roleMenuPowerSetting.vue +69 -0
- package/src/views/role/commonRole/compoment/roleMenuSetting.vue +365 -0
- package/src/views/role/commonRole/compoment/roleSourceSetting.vue +229 -0
- package/src/views/role/commonRole/tenantCommonRole.vue +768 -0
- package/src/views/role/role.vue +135 -0
- package/src/views/role/roleMenuOption.vue +898 -0
- package/src/views/role/roleSynchroRemind.vue +399 -0
- package/src/views/role/sysRole.vue +1525 -0
- package/src/views/role/viewMenuOptDetail.vue +182 -0
- package/src/views/sms/sendSms.vue +164 -0
- package/src/views/station/orgStation.vue +561 -0
- package/src/views/tenant/appContentManager.vue +938 -0
- package/src/views/tenant/appManager.vue +642 -0
- package/src/views/tenant/tenantRoleManager.vue +670 -0
- package/src/views/tenant/tenantUserManager.vue +615 -0
- package/src/views/threeinone/compoment/safeCascadeSelect.vue +327 -0
- package/src/views/threeinone/init/safeInitRegion.vue +203 -0
- package/src/views/threeinone/safeManager.vue +927 -0
- package/src/views/threeinone/safeMenuManage.vue +565 -0
- package/src/views/threeinone/safeOrgSpv.vue +364 -0
- package/src/views/threeinone/safeSpv/safeSpvLeftTree.vue +109 -0
- package/src/views/threeinone/safeSpv/safeSpvMain.vue +335 -0
- package/src/views/threeinone/safeSpvEconView.vue +569 -0
- package/src/views/threeinone/safeValidateRegion.vue +328 -0
- package/src/views/urlResource/urlResource.vue +856 -0
- package/src/views/user/empowerUser/empowerEntUserManage.vue +415 -0
- package/src/views/user/empowerUser/empowerOrgTree.vue +167 -0
- package/src/views/user/empowerUser/empowerUserList.vue +633 -0
- package/src/views/user/empowerUser/empowerUserListMenuDeatil.vue +656 -0
- package/src/views/user/empowerUser/empowerUserListViewMenuTree.vue +257 -0
- package/src/views/user/empowerUser/empowerUserManage.vue +99 -0
- package/src/views/user/stationUserManage.vue +934 -0
- package/src/views/user/userManage.vue +737 -0
- package/src/views/user/userMangement.vue +938 -0
- package/src/views/user/viewMenu/viewMenu.vue +113 -0
- package/src/views/versionupdatetool/versionUpdateTool.vue +225 -0
- package/src/views/versionupdatetool/versioninfomation/verisonInfomationManagement.vue +68 -0
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<span class="jlcombobox-container">
|
|
3
|
+
<template v-for="obj in optionMap">
|
|
4
|
+
<el-select v-model="searchForm[obj.field]" v-if="!obj.isHidden"
|
|
5
|
+
:ref="obj.field"
|
|
6
|
+
placeholder="请选择"
|
|
7
|
+
:size="size"
|
|
8
|
+
:style="style"
|
|
9
|
+
:multiple="obj.multiple"
|
|
10
|
+
:disabled="obj.disabled"
|
|
11
|
+
@change="obj.onChange(searchForm[obj.field])"
|
|
12
|
+
popper-class="jlcombobox" :clearable="clearable">
|
|
13
|
+
<el-option-group
|
|
14
|
+
v-if="obj.needGroup"
|
|
15
|
+
v-for="group in obj.datas"
|
|
16
|
+
:key="group.id"
|
|
17
|
+
:label="group.name">
|
|
18
|
+
<el-option
|
|
19
|
+
v-for="item in group.datas"
|
|
20
|
+
:key="item[valueField]"
|
|
21
|
+
:label="item[labelField]"
|
|
22
|
+
:value="item[valueField]">
|
|
23
|
+
</el-option>
|
|
24
|
+
</el-option-group>
|
|
25
|
+
<el-option
|
|
26
|
+
v-if="!obj.needGroup"
|
|
27
|
+
v-for="item in obj.datas"
|
|
28
|
+
:key="item[valueField]"
|
|
29
|
+
:label="item[labelField]"
|
|
30
|
+
:value="item[valueField]">
|
|
31
|
+
</el-option>
|
|
32
|
+
</el-select> {{obj.separator}}
|
|
33
|
+
</template>
|
|
34
|
+
</span>
|
|
35
|
+
</template>
|
|
36
|
+
|
|
37
|
+
<script>
|
|
38
|
+
export default {
|
|
39
|
+
name: "safe-cascade-select",//级联下拉框
|
|
40
|
+
props: {
|
|
41
|
+
searchForm: {type: Object, required: true},//表单对象
|
|
42
|
+
field: {type: String, required: true},//操作字段
|
|
43
|
+
typeId: {type: String, required: true},//数据字典ID
|
|
44
|
+
hasParentJudge:{type: String, default: ""},//是否需要父级
|
|
45
|
+
parentId:{type: String},//父级ID
|
|
46
|
+
dataUrl:{type: String},//数据来源
|
|
47
|
+
separator:{type: String, default: "-"},//分隔符
|
|
48
|
+
valueField: {type: String, default: "id"},//值域字段名称
|
|
49
|
+
labelField: {type: String, default: "dataName"},//显示域字段名称
|
|
50
|
+
parentField: {type: String, default: "parentId"},//父级字段名称
|
|
51
|
+
multiple: {type: String, default: ""},//是否多选
|
|
52
|
+
disabled: {type: String, default: ""},//是否只读
|
|
53
|
+
isHidden: {type: String, default: ""},//是否隐藏
|
|
54
|
+
defaultValue: {type: String, default: ""},//默认值
|
|
55
|
+
clickCallback:{type:Function,default: null},
|
|
56
|
+
size:{type: String, default: "small"},
|
|
57
|
+
width:{type: String, default: ""}, // 宽度
|
|
58
|
+
clearable:{type:Boolean,default:true},//是否可清除
|
|
59
|
+
},
|
|
60
|
+
data() {
|
|
61
|
+
return {
|
|
62
|
+
dataMap : {},
|
|
63
|
+
dataIdMap : {},
|
|
64
|
+
optionMap : {},
|
|
65
|
+
parentTempId:"-1",
|
|
66
|
+
OBJ_DATAS: {},
|
|
67
|
+
style:{},
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
watch:{
|
|
71
|
+
parentId(){
|
|
72
|
+
this.initCascadeSelect;
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
created() {
|
|
76
|
+
this.initCascadeSelect();
|
|
77
|
+
},
|
|
78
|
+
|
|
79
|
+
methods: {
|
|
80
|
+
/**
|
|
81
|
+
* 获取控件将用到的元数据,并根据parentId进行存储
|
|
82
|
+
* @param callBackFunc 回调函数
|
|
83
|
+
*/
|
|
84
|
+
getAllData(callBackFunc){
|
|
85
|
+
let vm = this;
|
|
86
|
+
// 根据元数据类型获取元数据
|
|
87
|
+
vm.DATA_GLOBAL.getDatas(vm.typeId,vm.parentId).then(datas => {
|
|
88
|
+
// 遍历返回的元数据数组
|
|
89
|
+
for(let dataTemp of datas){
|
|
90
|
+
// 若该元数据存在父级ID与ID
|
|
91
|
+
if(dataTemp[vm.parentField] && dataTemp[vm.valueField]) {
|
|
92
|
+
// 若未有该父级ID的元数据,则初始化
|
|
93
|
+
if (!vm.dataMap[dataTemp[vm.parentField]]){
|
|
94
|
+
vm.dataMap[dataTemp[vm.parentField]] = [];
|
|
95
|
+
}
|
|
96
|
+
// 将元数据添加到以父级ID为键与以ID为键的MAP中
|
|
97
|
+
vm.dataMap[dataTemp[vm.parentField]].push(dataTemp);
|
|
98
|
+
vm.dataIdMap[dataTemp[vm.valueField]] = dataTemp;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// 存在回调函数时,进行调用
|
|
102
|
+
if(callBackFunc && typeof callBackFunc == "function"){
|
|
103
|
+
callBackFunc();
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
},
|
|
107
|
+
/**
|
|
108
|
+
* 获取下拉框数据源并校正选择值
|
|
109
|
+
* @param parentId 父级ID
|
|
110
|
+
* @param field 字段
|
|
111
|
+
*/
|
|
112
|
+
getSelectData(parentId, field){
|
|
113
|
+
let vm = this;
|
|
114
|
+
// 若MAP中未找到该字段对应的配置,则退出
|
|
115
|
+
if(!vm.optionMap[field]){
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
// 若parentId为空,则清空数据源与选择值
|
|
119
|
+
if(parentId && parentId.length){
|
|
120
|
+
let datasTemp = [];
|
|
121
|
+
let datasRecord = []; // 记录添加的数据源
|
|
122
|
+
//如果parentId 是字符串类型
|
|
123
|
+
if(typeof parentId === 'string'){
|
|
124
|
+
let dataTempMap = {};
|
|
125
|
+
vm.DATA_GLOBAL.getDatas(vm.typeId,parentId).then(datas => {
|
|
126
|
+
// 遍历返回的元数据数组
|
|
127
|
+
for(let dataTemp of datas){
|
|
128
|
+
// 若该元数据存在父级ID与ID
|
|
129
|
+
if(dataTemp[vm.parentField] && dataTemp[vm.valueField]) {
|
|
130
|
+
// 若未有该父级ID的元数据,则初始化
|
|
131
|
+
if (!dataTempMap[dataTemp[vm.parentField]]){
|
|
132
|
+
dataTempMap[dataTemp[vm.parentField]] = [];
|
|
133
|
+
}
|
|
134
|
+
// 将元数据添加到以父级ID为键与以ID为键的MAP中
|
|
135
|
+
dataTempMap[dataTemp[vm.parentField]].push(dataTemp);
|
|
136
|
+
dataTempMap[dataTemp[vm.valueField]] = dataTemp;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
datasRecord = dataTempMap[parentId];
|
|
140
|
+
|
|
141
|
+
//数据重置与赋值 optionMap
|
|
142
|
+
vm.setFormData(datasRecord,field);
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
// 若有下级下拉框,则继续重置
|
|
146
|
+
if(vm.optionMap[field].casField){
|
|
147
|
+
vm.parentTempId = vm.searchForm[field];
|
|
148
|
+
vm.getSelectData(vm.searchForm[field], vm.optionMap[field].casField);
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
}else {
|
|
152
|
+
// 分组对象
|
|
153
|
+
let groupTemp;
|
|
154
|
+
// 遍历parentId数组,添加对应parentId的数据源
|
|
155
|
+
for (let parentIdTemp of parentId) {
|
|
156
|
+
// 保存分组对象信息
|
|
157
|
+
groupTemp = {"id" : parentIdTemp
|
|
158
|
+
, "name" : vm.dataIdMap[parentIdTemp] ? vm.dataIdMap[parentIdTemp][vm.labelField] : ""
|
|
159
|
+
, "datas" : []};
|
|
160
|
+
for(let dataTemp of vm.dataMap[parentIdTemp]){
|
|
161
|
+
// 讲元数据保存到元数据组中
|
|
162
|
+
groupTemp.datas.push(dataTemp);
|
|
163
|
+
datasRecord.push(dataTemp);
|
|
164
|
+
}
|
|
165
|
+
datasTemp.push(groupTemp);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// 若只有一组元数据,则取消分组
|
|
169
|
+
if(datasTemp.length == 1){
|
|
170
|
+
datasTemp = datasTemp[0].datas;
|
|
171
|
+
vm.optionMap[field].needGroup = false;
|
|
172
|
+
}else{
|
|
173
|
+
vm.optionMap[field].needGroup = true;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
//数据重置与赋值 searchForm
|
|
177
|
+
vm.setFormData(datasTemp,field);
|
|
178
|
+
|
|
179
|
+
// 若有下级下拉框,则继续重置
|
|
180
|
+
if(vm.optionMap[field].casField){
|
|
181
|
+
vm.parentTempId = vm.searchForm[field];
|
|
182
|
+
vm.getSelectData(vm.searchForm[field], vm.optionMap[field].casField);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}else {
|
|
186
|
+
vm.optionMap[field].datas = [];
|
|
187
|
+
vm.optionMap[field].needGroup = false;
|
|
188
|
+
vm.searchForm[field] = vm.optionMap[field].multiple ? [] : "";
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* 重置下一级下拉列表与赋值 searchForm
|
|
195
|
+
* */
|
|
196
|
+
setFormData(datasRecord,field){
|
|
197
|
+
let vm = this;
|
|
198
|
+
vm.optionMap[field].datas = datasRecord;
|
|
199
|
+
// 获取当前值
|
|
200
|
+
let curValue = vm.searchForm[field];
|
|
201
|
+
// 获取当前选择值的数组形式
|
|
202
|
+
let curValueArr = typeof curValue == "object" ? curValue : [curValue];
|
|
203
|
+
valueEach:
|
|
204
|
+
for (let i = curValueArr.length - 1; i >= 0; i--) {
|
|
205
|
+
if(datasRecord && datasRecord.constructor === Array && datasRecord.length > 0){
|
|
206
|
+
for (let dataObj of datasRecord) {
|
|
207
|
+
// 若当前选择的值存在于新数据源中,则跳入外层下一次循环
|
|
208
|
+
if (dataObj && dataObj[vm.valueField] == curValueArr[i]) {
|
|
209
|
+
continue valueEach;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
// 若当前选择的值不存在于新数据源,则删除该选择值
|
|
214
|
+
curValueArr.splice(i, 1);
|
|
215
|
+
}
|
|
216
|
+
// 根据是否多选来赋值
|
|
217
|
+
vm.searchForm[field] = typeof curValue == "object" ? curValueArr : curValueArr.join("");
|
|
218
|
+
|
|
219
|
+
},
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* 初始化级联下拉框
|
|
225
|
+
*/
|
|
226
|
+
initCascadeSelect() {
|
|
227
|
+
// 初始化宽度
|
|
228
|
+
if(this.width){
|
|
229
|
+
this.style = {'width':this.width};
|
|
230
|
+
}
|
|
231
|
+
let vm = this;
|
|
232
|
+
// 获取元数据
|
|
233
|
+
vm.getAllData(() => {
|
|
234
|
+
// 字段数组
|
|
235
|
+
let fieldArr = vm.field.split(",");
|
|
236
|
+
// 多选设置数组
|
|
237
|
+
let multipleArr = (vm.multiple || "").split(",");
|
|
238
|
+
// 只读设置数组
|
|
239
|
+
let disabledArr = (vm.disabled || "").split(",");
|
|
240
|
+
//隐藏设置数组
|
|
241
|
+
let hiddenArr = (vm.isHidden || "").split(",");
|
|
242
|
+
// 默认值数组
|
|
243
|
+
let defaultValueArr = (vm.defaultValue || "").split(",");
|
|
244
|
+
|
|
245
|
+
// 遍历字段数组,将配置保存在MAP中
|
|
246
|
+
for(let i = 0; i < fieldArr.length; i++){
|
|
247
|
+
let optionObj = {};
|
|
248
|
+
optionObj.field = fieldArr[i] + "";
|
|
249
|
+
optionObj.multiple = multipleArr[i] == 'true';
|
|
250
|
+
optionObj.disabled = disabledArr[i] == 'true';
|
|
251
|
+
optionObj.isHidden = hiddenArr[i] == 'true';
|
|
252
|
+
|
|
253
|
+
// Element下拉框多选与单选值类型不同,所以进行处理
|
|
254
|
+
if(optionObj.multiple){
|
|
255
|
+
optionObj.defaultValue = defaultValueArr[i] ? [defaultValueArr[i]] : [];
|
|
256
|
+
}else{
|
|
257
|
+
optionObj.defaultValue = defaultValueArr[i] ? defaultValueArr[i] : "";
|
|
258
|
+
}
|
|
259
|
+
vm.searchForm[fieldArr[i]] = vm.searchForm[fieldArr[i]] && vm.searchForm[fieldArr[i]].length
|
|
260
|
+
? vm.searchForm[fieldArr[i]]
|
|
261
|
+
: optionObj.defaultValue;
|
|
262
|
+
//searchForm中移除 vm.field
|
|
263
|
+
if( vm.field in vm.searchForm){
|
|
264
|
+
delete vm.searchForm[vm.field];
|
|
265
|
+
}
|
|
266
|
+
optionObj.datas = [];
|
|
267
|
+
if(i != fieldArr.length -1) {
|
|
268
|
+
// 存关联的下拉框字段
|
|
269
|
+
optionObj.casField = fieldArr[i+1];
|
|
270
|
+
optionObj.separator = vm.separator;
|
|
271
|
+
// 值改变事件
|
|
272
|
+
optionObj.onChange = (value) => {
|
|
273
|
+
let dataName = ''; //当前label值
|
|
274
|
+
vm.getSelectData(vm.searchForm[fieldArr[i]], optionObj.casField);
|
|
275
|
+
// 重置数据源与选中值
|
|
276
|
+
vm.optionMap = Object.assign({}, vm.optionMap);
|
|
277
|
+
let currenData = optionObj.datas || [];
|
|
278
|
+
Object.keys(currenData).forEach(key => {
|
|
279
|
+
if(currenData[key].id === value){
|
|
280
|
+
dataName = currenData[key].dataName;
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
if(vm.clickCallback !== null){
|
|
285
|
+
vm.clickCallback(dataName,optionObj.field,value); //回传label 和当前选中字段 和value
|
|
286
|
+
}
|
|
287
|
+
};
|
|
288
|
+
}else{
|
|
289
|
+
optionObj.onChange = (value) => {
|
|
290
|
+
let dataName = '';
|
|
291
|
+
vm.optionMap = Object.assign({}, vm.optionMap);
|
|
292
|
+
let currenData = optionObj.datas || [];
|
|
293
|
+
Object.keys(currenData).forEach(key => {
|
|
294
|
+
if(currenData[key].id === value){
|
|
295
|
+
dataName = currenData[key].dataName;
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
});
|
|
299
|
+
if(vm.clickCallback !== null){
|
|
300
|
+
vm.clickCallback(dataName,optionObj.field,value); //回传label 和当前选中字段
|
|
301
|
+
}
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
vm.optionMap[optionObj.field] = optionObj;
|
|
305
|
+
|
|
306
|
+
// 初始化数据源与选中值
|
|
307
|
+
if(i == 0){
|
|
308
|
+
vm.getSelectData(vm.hasParentJudge == "true" ? vm.parentId : "-1" , optionObj.field);
|
|
309
|
+
}else{
|
|
310
|
+
vm.getSelectData(vm.searchForm[fieldArr[i-1]], optionObj.field);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
vm.optionMap = Object.assign({}, vm.optionMap);
|
|
315
|
+
|
|
316
|
+
});
|
|
317
|
+
// console.log("下拉框:",this.optionMap);
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
</script>
|
|
322
|
+
|
|
323
|
+
<style scoped>
|
|
324
|
+
.jlcombobox-container{
|
|
325
|
+
display: inline-block;
|
|
326
|
+
}
|
|
327
|
+
</style>
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
<!--初始化三位一体-->
|
|
2
|
+
<template>
|
|
3
|
+
<el-container style="height: 100%;width: 100%">
|
|
4
|
+
|
|
5
|
+
<div class="quote-header-class">
|
|
6
|
+
<blockquote class="quote-class">
|
|
7
|
+
<span class="quote-font-class">
|
|
8
|
+
三位一体初始化操作
|
|
9
|
+
</span>
|
|
10
|
+
<span style="color: red">
|
|
11
|
+
<i class="saspiconfont pl-icon-weixian">
|
|
12
|
+
<span style="font-size: 14px">
|
|
13
|
+
接下来的操作会重建三位一体所有表,数据将会初始化。请谨慎操作!
|
|
14
|
+
</span>
|
|
15
|
+
</i>
|
|
16
|
+
</span>
|
|
17
|
+
</blockquote>
|
|
18
|
+
</div>
|
|
19
|
+
<div>
|
|
20
|
+
|
|
21
|
+
</div>
|
|
22
|
+
<fieldset class="fieldset-class">
|
|
23
|
+
<legend class="legend" >初始化三位一体需要的表</legend>
|
|
24
|
+
<el-button type="primary"
|
|
25
|
+
style="margin-top: 20px;margin-left: 30px" @click="initTable()">
|
|
26
|
+
初始化三位一体相关表
|
|
27
|
+
</el-button>
|
|
28
|
+
<div style="margin-top: 0px">
|
|
29
|
+
<span style="margin-left: 30px;" v-html="tableInitMsg"></span>
|
|
30
|
+
</div>
|
|
31
|
+
</fieldset>
|
|
32
|
+
|
|
33
|
+
<fieldset class="fieldset-box-class" v-show="filedSetShow">
|
|
34
|
+
<legend class="legend" >初始化表数据-请选择需要初始化的地区</legend>
|
|
35
|
+
<safe-cascade-select
|
|
36
|
+
style="margin-left: 30px;margin-top: 20px"
|
|
37
|
+
:search-form="initDataObj"
|
|
38
|
+
field="province,city,area"
|
|
39
|
+
type-id="522eb83216004493b0e0eb729c564941"
|
|
40
|
+
:defaultValue="defaultValue"
|
|
41
|
+
:disabled="disableStr"
|
|
42
|
+
size="small"></safe-cascade-select>
|
|
43
|
+
<el-button type="primary"
|
|
44
|
+
style="margin-top: 20px;margin-left: 30px"
|
|
45
|
+
size="small" @click="initData()">
|
|
46
|
+
初始化表数据
|
|
47
|
+
</el-button>
|
|
48
|
+
<div style="margin-top: 20px">
|
|
49
|
+
<span style="margin-left: 30px;" v-if="!isClickTableData">{{tableDataInitMsg}}</span>
|
|
50
|
+
<span style="margin-left: 30px;" v-if="isClickTableData && completeTableData">
|
|
51
|
+
<div style='margin-left: 30px;color:green;margin-top: 10px'>数据初始化完毕,请刷新页面! <a style='cursor:pointer;color:blue' @click='refresh()'>刷新</a></div>
|
|
52
|
+
</span>
|
|
53
|
+
<span style="margin-left: 30px;" v-if="isClickTableData && !completeTableData">
|
|
54
|
+
<div style='margin-left: 30px;color:red;margin-top: 10px'>数据初始化异常,请联系开发人员!</div>
|
|
55
|
+
</span>
|
|
56
|
+
</div>
|
|
57
|
+
</fieldset>
|
|
58
|
+
</el-container>
|
|
59
|
+
</template>
|
|
60
|
+
|
|
61
|
+
<script>
|
|
62
|
+
import SafeCascadeSelect from "../compoment/safeCascadeSelect";
|
|
63
|
+
export default {
|
|
64
|
+
name: "safeInitRegion",
|
|
65
|
+
components: {SafeCascadeSelect},
|
|
66
|
+
props:{
|
|
67
|
+
defaultValue:{type:String,default:''},
|
|
68
|
+
disableStr:{type:String,default:''},
|
|
69
|
+
refreshSafe:{type:Function,default: null},
|
|
70
|
+
},
|
|
71
|
+
data(){
|
|
72
|
+
return{
|
|
73
|
+
filedSetShow:false, //表数据配置
|
|
74
|
+
tableInitMsg:'暂无初始化结果显示!请点击按钮。',
|
|
75
|
+
tableArr:["SAFE_REGION","SAFE_SPV","SAFE_SPV_ECON","SAFE_ORG_SPV"],
|
|
76
|
+
tableDataInitMsg:'暂无初始化数据结果显示!请点击按钮。',
|
|
77
|
+
initDataObj:{
|
|
78
|
+
province:'',
|
|
79
|
+
city:'',
|
|
80
|
+
area:''
|
|
81
|
+
},
|
|
82
|
+
isClickTableData:false, //是否执行表数据初始化
|
|
83
|
+
completeTableData:false, //执行表初始化结果
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
methods:{
|
|
87
|
+
/**
|
|
88
|
+
* 初始化表数据
|
|
89
|
+
*/
|
|
90
|
+
initTable(){
|
|
91
|
+
this.filedSetShow = false;
|
|
92
|
+
this.tableInitMsg = "";
|
|
93
|
+
let flag = true;
|
|
94
|
+
|
|
95
|
+
this.$confirm("确定初始化三位一体所有表", '警告', {
|
|
96
|
+
confirmButtonText: '确定',
|
|
97
|
+
cancelButtonText: '取消',
|
|
98
|
+
type: 'warning'
|
|
99
|
+
}).then(() => {
|
|
100
|
+
this.axios.post(this.api.safeInit.initTrinityTable).then(res =>{
|
|
101
|
+
if(res && res.data){
|
|
102
|
+
if(res.data.flag == 'true'){
|
|
103
|
+
this.tableArr.forEach(item =>{
|
|
104
|
+
this.tableInitMsg += "<div style='margin-left: 30px'>[表名:<span style='color: green'>"+item+"</span>] 初始化完毕 <i class='fa fa-check wc'></i></div>";
|
|
105
|
+
});
|
|
106
|
+
}else {
|
|
107
|
+
flag = false;
|
|
108
|
+
this.tableInitMsg = "<div style='margin-left: 30px;color:green;margin-top: 10px'>初始化失败 <i class='fa fa-close fb'></i></div>";
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if(flag){
|
|
112
|
+
this.tableInitMsg += "<div style='margin-left: 30px;color:green;margin-top: 10px'>三位一体相关表已经准备完毕,请进行下一步操作!</div>";
|
|
113
|
+
this.filedSetShow = true;
|
|
114
|
+
}else {
|
|
115
|
+
this.tableInitMsg += "<div style='margin-left: 30px;color:red;margin-top: 10px'>三位一体相关表初始化失败,请联系开发人员!</div>";
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
},
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* 初始化表数据
|
|
123
|
+
*/
|
|
124
|
+
initData(){
|
|
125
|
+
this.isClickTableData = false;
|
|
126
|
+
this.completeTableData = false;
|
|
127
|
+
this.axios.post(this.api.safeInit.initTrinityData,{"province":this.initDataObj.province,"city":this.initDataObj.city,"area":this.initDataObj.area}).then(res =>{
|
|
128
|
+
this.isClickTableData = true;
|
|
129
|
+
if(res && res.data){
|
|
130
|
+
if(res.data.flag == 'true'){
|
|
131
|
+
this.completeTableData = true;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
},
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* 刷新 safeManager
|
|
140
|
+
*/
|
|
141
|
+
refresh(){
|
|
142
|
+
//调用 safeManager 刷新方法
|
|
143
|
+
this.refreshSafe && this.refreshSafe();
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
</script>
|
|
148
|
+
|
|
149
|
+
<style scoped lang="scss">
|
|
150
|
+
.quote-header-class{
|
|
151
|
+
width: calc(100% - 45px);
|
|
152
|
+
margin-left: 5px;
|
|
153
|
+
height: 25px;
|
|
154
|
+
line-height: 25px;
|
|
155
|
+
position: absolute;
|
|
156
|
+
|
|
157
|
+
}
|
|
158
|
+
.quote-class{
|
|
159
|
+
margin-bottom: 10px;
|
|
160
|
+
padding: 10px;
|
|
161
|
+
border-left: 5px solid #009688;
|
|
162
|
+
background-color: #f2f2f2;
|
|
163
|
+
.quote-font-class{
|
|
164
|
+
font-size: 16px;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.fieldset-class{
|
|
169
|
+
position: absolute;
|
|
170
|
+
width: calc(100% - 45px);
|
|
171
|
+
height: 240px;
|
|
172
|
+
border: 2px solid #EBEEF5;
|
|
173
|
+
margin-top: 50px;
|
|
174
|
+
box-sizing: border-box;
|
|
175
|
+
.legend{
|
|
176
|
+
margin-left: 20px;
|
|
177
|
+
padding: 0 10px;
|
|
178
|
+
font-size: 16px;
|
|
179
|
+
font-weight: 300;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
.fieldset-box-class{
|
|
183
|
+
width: 100%;
|
|
184
|
+
height: 200px;
|
|
185
|
+
border: 2px solid #EBEEF5;
|
|
186
|
+
margin-top: 300px;
|
|
187
|
+
box-sizing: border-box;
|
|
188
|
+
.legend{
|
|
189
|
+
margin-left: 20px;
|
|
190
|
+
padding: 0 10px;
|
|
191
|
+
font-size: 16px;
|
|
192
|
+
font-weight: 300;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
.tableName{
|
|
196
|
+
color:green;
|
|
197
|
+
}
|
|
198
|
+
.cjxx{
|
|
199
|
+
margin:5px;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
</style>
|