From 2cbad4e40c2938a90172aa24551e82a4817b9640 Mon Sep 17 00:00:00 2001
From: yuxc <yuxc@vci-tech.com>
Date: 星期四, 25 四月 2024 15:21:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
Source/ProjectWeb/src/actions/base/AddAction.js | 27 ++++-
/dev/null | 16 ---
Source/ProjectWeb/src/api/system/dict.js | 12 ++
Source/ProjectWeb/src/components/actions/AddEditDialog.vue | 93 ++++++++++++++++++
Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue | 70 +++++++++++++
Source/ProjectWeb/src/components/PLT-basic-component/BasicForm.vue | 25 +++-
6 files changed, 211 insertions(+), 32 deletions(-)
diff --git a/Source/ProjectWeb/src/actions/base/AddAction.js b/Source/ProjectWeb/src/actions/base/AddAction.js
index e4523d6..507921f 100644
--- a/Source/ProjectWeb/src/actions/base/AddAction.js
+++ b/Source/ProjectWeb/src/actions/base/AddAction.js
@@ -4,7 +4,7 @@
import {paramLow,callPreEvent, callPostEvent} from './BaseAction';
import {validatenull} from "@/util/validate";
import Vue from "vue";
-
+import AddEditDialog from "@/components/actions/AddEditDialog"
export const doAction = (options) => {
options.paramVOS = paramLow(options.paramVOS)
@@ -31,15 +31,32 @@
*/
export const doAdd = (options,callback)=> {
const paramVOS = options.paramVOS;
- if (!paramVOS['form'] && !paramVOS['context']) {
+ if (!paramVOS['form'] && !paramVOS['context']&& !paramVOS['content']) {
Vue.prototype.$message.error("鎸夐挳閰嶇疆涓嶆纭�");
return false;
}
- Vue.prototype.$message.success('鎵ц'+paramVOS.title);
- if(callback){
- callback(options);
+ const dialogConstructor = Vue.extend(AddEditDialog);
+ let instance = new dialogConstructor();
+ instance.props={
+ sourceData:options.sourceData,
+ dataStore:options.dataStore,
+ paramVOS:paramVOS
}
+ const vm = instance.$mount();
+ vm.visible=true;
+ vm.dialogClose=function (){
+ document.body.removeChild(vm.$el);
+ instance.$destroy();
+ instance = null;
+ };
+ vm.prototype.saveCallback=function (){
+ if (callback) {
+ callback(options);
+ }
+ }
+ document.body.appendChild(vm.$el);
+
}
/**
* 鍓嶇疆浜嬩欢
diff --git a/Source/ProjectWeb/src/api/system/dict.js b/Source/ProjectWeb/src/api/system/dict.js
index 572f1da..411c211 100644
--- a/Source/ProjectWeb/src/api/system/dict.js
+++ b/Source/ProjectWeb/src/api/system/dict.js
@@ -1,5 +1,17 @@
import request from '@/router/axios';
+//鑾峰彇涓嬫媺
+export const getDicts = (id) => {
+ return request({
+ url: '/api/uiDataController/getEnum',
+ method: 'get',
+ params: {
+ comboxKey:id,
+ id:id
+ }
+ })
+}
+
export const getList = (current, size, params) => {
return request({
url: '/api/blade-system/dict/list',
diff --git a/Source/ProjectWeb/src/components/PLT-basic-component/BasicForm.vue b/Source/ProjectWeb/src/components/PLT-basic-component/BasicForm.vue
index 4412d13..caf71da 100644
--- a/Source/ProjectWeb/src/components/PLT-basic-component/BasicForm.vue
+++ b/Source/ProjectWeb/src/components/PLT-basic-component/BasicForm.vue
@@ -22,6 +22,7 @@
import vciWebRefer from "@/components/refer/vciWebRefer.vue";
import { formatMilliseconds } from "@/util/formatTime";
import { validatenull } from "@/util/validate";
+import { getDicts } from "@/api/system/dict";
export default {
name: "basicForm",
@@ -74,6 +75,7 @@
datetime: "datetime",
date: "date",
refer: "refer",
+ multiFile:"upload"
}
};
},
@@ -148,14 +150,15 @@
this.option.group = group;
},
initItem(item){
- const type=this.columnType[this.type] || this.type
+ const type=this.columnType[item.type] || item.type
const col= {
...item,
label: item.text,
prop: item.field,
+ showProp:item.showField,
type: type,
labelWidth: this.labelWidth || (item.text.length >= 6 ? 115 : 90),
- disabled: item.disabled || this.disabled,
+ disabled: item.readOnly || this.disabled,
span: item.span
? item.span
: item.type === "textarea"
@@ -174,16 +177,20 @@
trigger: "blur"
}]
}
- if (col.propType === "dict") {
+ if (col.type === "select") {
if(!validatenull(col.dictCode)) {
- /*this.getDicts(col.dictCode).then((res) => {
- if (res.success) {
- const dic = res.obj.data;
+ /*getDicts(col.dictCode).then((res) => {
+ if (res.data.success){
+ if(res.data.data && res.data.obj == null){
+ res.data.obj = res.data.data
+ }
+ const dic = res.data.obj;
col.dicData = dic.map((d) => {
return {
- label: d.name,
- key: d.code,
- value: d.code,
+ label: d.value,
+ key: d.key,
+ value: d.key,
+ attributes:d.attributes
};
});
}
diff --git a/Source/ProjectWeb/src/components/actions/AddEditDialog.vue b/Source/ProjectWeb/src/components/actions/AddEditDialog.vue
new file mode 100644
index 0000000..cebbd0c
--- /dev/null
+++ b/Source/ProjectWeb/src/components/actions/AddEditDialog.vue
@@ -0,0 +1,93 @@
+<template>
+ <el-dialog v-dialogDrag
+ :title="paramVOS.title"
+ :visible.sync="visible"
+ :width="width"
+ :style="'height:'+height || 'auto'"
+ :append-to-body="true"
+ class="avue-dialog avue-dialog--top"
+ @close="dialogClose">
+ dialog
+ <basic-form ref="formRef" v-if="paramVOS.form"></basic-form>
+ <ui-view ref="uiViewRef" v-else-if="paramVOS.content || paramVOS.context"></ui-view>
+ <div v-if="paramVOS.form" class="avue-dialog__footer">
+ <el-button type="primary" @click="saveHandler">淇� 瀛�</el-button>
+ <el-button @click="escHandler">鍙� 娑�</el-button>
+ <el-button @click="resetValue">閲� 缃�</el-button>
+ </div>
+ </el-dialog>
+</template>
+
+<script>
+import uiView from "@/views/base/UIContentViewerInDialog"
+import {dataForm} from "@/api/base/ui";
+
+export default {
+ name: "AddEditDialog",
+ components:{uiView},
+ props: {
+ sourceData: {
+ //鎵�灞炲尯鍩熺殑涓婁竴鍖哄煙閫変腑鏁版嵁
+ type: Object,
+ default: {}
+ },
+ dataStore: {
+ //寮圭獥鏃舵寜閽墍灞炲尯鍩熼�変腑鏁版嵁
+ type: Array,
+ default: []
+ },
+ paramVOS: {
+ type: Object,
+ default: {}
+ },
+ width: {
+ type: String,
+ default:'70%'
+ },
+ height: {
+ type: String,
+ default:'500px'
+ },
+ },
+ data(){
+ return {
+ visible:false
+ }
+ },
+ computed:{
+ },
+ created() {
+
+ },
+ methods: {
+ dialogClose() {
+ this.visible = false;
+ },
+ onLoad: function () {
+ if (Object.keys(this.sourceData).length > 0 && this.isShow) {
+ this.loading = true;
+ dataForm(this.params).then(res => {
+ this.form = res.data.obj;
+ this.loading = false;
+ }).catch(error => {
+ this.$message.error(error);
+ this.loading = false;
+ });
+ }
+ },
+ saveHandler() {
+ this.dialogClose();
+ },
+ escHandler() {
+ this.dialogClose();
+ },
+ resetValue() {
+ this.$refs.formRef.resetValue();
+ }
+ }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/Source/ProjectWeb/src/components/actions/formDialog.vue b/Source/ProjectWeb/src/components/actions/formDialog.vue
deleted file mode 100644
index 7837de5..0000000
--- a/Source/ProjectWeb/src/components/actions/formDialog.vue
+++ /dev/null
@@ -1,16 +0,0 @@
-<template>
- <dialog>
-
- </dialog>
-</template>
-
-<script>
-
-export default {
- name: "formDialog"
-}
-</script>
-
-<style scoped>
-
-</style>
diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue
index 7c570d8..3e51d12 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue
@@ -9,6 +9,7 @@
</template>
<script>
+import {dataForm} from "@/api/base/ui";
export default {
name: "dynamic-form",
@@ -38,6 +39,10 @@
type: Object,
default: {}
},
+ //涓婁竴鍖哄煙涓氬姟绫诲瀷
+ sourceBtmType:{
+ type: String
+ },
dataStore: {
//寮圭獥鏃舵寜閽墍灞炲尯鍩熼�変腑鏁版嵁
type: Array,
@@ -56,6 +61,9 @@
data() {
return {
form: {},
+ params:{},
+ sourceDataMapParams:{},
+ currentDefineVO:this.componentVO.formDefineVO,
}
},
mounted() {
@@ -76,13 +84,71 @@
sourceData: {
handler(newval) {
//婧愭暟鎹湁鍙樺寲鏃跺彉鏇村綋鍓嶅尯鍩熸暟鎹�
- console.log(this.areasName);
- console.log(newval);
+ this.sourceDataMapParams=this.sourceDataMap();
+ this.getParams();
this.handleRefresh();
}
}
},
+ created() {
+ this.getParams();
+ },
methods: {
+ sourceDataMap: function () {
+ const sourceDataMap = {};
+ if (Object.keys(this.sourceData).length>0) {
+ if(this.sourceData.oid ) {
+ if (this.sourceData.oid.indexOf('@vcitreesep@') > -1) {
+ this.sourceData.oid = this.sourceData.oid.split('@vcitreesep@')[1];
+ }
+ sourceDataMap.sourceBtmName = this.sourceBtmType;;
+ sourceDataMap.sourceOid = this.sourceData.oid;
+ }
+ for (let i in this.sourceData) {
+ let item = this.sourceData[i]
+ if (item && item.constructor === Object) return;
+ if (i == 'type' || i == 'context' || i == 'content') return;
+ sourceDataMap['sourceData["' + i + '"]'] = item
+ }
+ }
+
+ if (Object.keys(this.paramVOS).length>0) {
+ for (let i in this.paramVOS) {
+ let item = this.paramVOS[i]
+ if (item && item.constructor === Object) return;
+ if (i == 'type' || i == 'context' || i == 'content') return;
+ sourceDataMap['sourceData["' + i + '"]'] = item
+ }
+ }
+ return sourceDataMap;
+ },
+ getParams: function () {
+ const formParams = {
+ btmname: this.currentDefineVO.btmType,
+ btmType:this.currentDefineVO.btmType,
+ formDefineId: this.currentDefineVO.id,
+ oid:this.currentDefineVO.oid
+ };
+ if(this.dataStore[0] && this.dataStore[0].oid) {
+ formParams.oid = this.dataStore[0].oid;
+ }
+ const sourceDataMapList = this.sourceDataMapParams;
+
+ this.params = Object.assign({},formParams, sourceDataMapList);
+ console.log(this.params)
+ },
+ onLoad:function () {
+ if (Object.keys(this.sourceData).length>0 && this.isShow) {
+ this.loading = true;
+ dataForm(this.params).then(res => {
+ this.form = res.data.obj;
+ this.loading = false;
+ }).catch(error => {
+ this.$message.error(error);
+ this.loading = false;
+ });
+ }
+ },
handleRefresh(){
}
--
Gitblit v1.9.3