|
@@ -6,17 +6,72 @@
|
|
|
<el-form label-width="80px" :model="datas" size="small">
|
|
|
<!-- 选择表单 -->
|
|
|
<el-form-item class="lef" label="" prop="tableName">
|
|
|
+ <!-- 选择表单 -->
|
|
|
+ <el-form-item label="数据库表" prop="tableName">
|
|
|
+ <el-select
|
|
|
+ v-model="datas.tableName"
|
|
|
+ placeholder="请选择"
|
|
|
+ style="width: 87%"
|
|
|
+ @change="
|
|
|
+ (value) => {
|
|
|
+ getFieldOptions1(value);
|
|
|
+ }
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in tableList"
|
|
|
+ :key="item.tableName"
|
|
|
+ :label="item.tableComment"
|
|
|
+ :value="item.tableName"
|
|
|
+ >
|
|
|
+ <span class="discribe" style="float: left">{{
|
|
|
+ item.tableComment
|
|
|
+ }}</span>
|
|
|
+ <span style="float: right; color: #8492a6; font-size: 13px">{{
|
|
|
+ item.tableName
|
|
|
+ }}</span>
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <div style="height: 20px" />
|
|
|
+
|
|
|
+ <el-form-item label="控件字段">
|
|
|
+ <el-select
|
|
|
+ v-model="datas.fieldName"
|
|
|
+ placeholder="请选择控件字段"
|
|
|
+ style="width: 87%"
|
|
|
+ @change="changeModel"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="i in fieldList"
|
|
|
+ :key="i.fieldName"
|
|
|
+ :label="i.fieldName"
|
|
|
+ :value="i.fieldName"
|
|
|
+ >
|
|
|
+ <span style="float: left">{{ i.fieldName }}</span>
|
|
|
+ <span style="float: right; color: #8492a6; font-size: 13px">{{
|
|
|
+ i.fieldDescription
|
|
|
+ }}</span>
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <div style="height: 20px" />
|
|
|
<el-radio-group v-model="listQueryData.isSingleTable">
|
|
|
<el-radio :label="0">单表</el-radio>
|
|
|
<el-radio :label="1">多表</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
- <el-button type="primary" size="mini" @click="editQueryHandler"
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ @click="editQueryHandler"
|
|
|
+ style="margin-left: 80px"
|
|
|
>编辑查询条件</el-button
|
|
|
>
|
|
|
-
|
|
|
<div style="height: 20px" />
|
|
|
</el-form>
|
|
|
+
|
|
|
<el-dialog
|
|
|
title="查询条件"
|
|
|
style="top: 0"
|
|
@@ -329,7 +384,7 @@ import { camelCase } from "@/utils/index.js";
|
|
|
import Data from "@/views/system/dict/data.vue";
|
|
|
|
|
|
export default {
|
|
|
- name: "notecardstyle",
|
|
|
+ name: "queryListstyle",
|
|
|
dicts: ["sys_time_format"],
|
|
|
props: {
|
|
|
datas: Object,
|
|
@@ -340,6 +395,9 @@ export default {
|
|
|
if (value.length === 0) callback(new Error("请输入有效数字"));
|
|
|
};
|
|
|
return {
|
|
|
+ tableQueryConditions: [],
|
|
|
+ tableList: [],
|
|
|
+ fieldList: [],
|
|
|
currentRow: {}, //当前正在编辑的列
|
|
|
columnAttibute: {
|
|
|
isDateColumn: false,
|
|
@@ -354,7 +412,7 @@ export default {
|
|
|
|
|
|
mainForm: {
|
|
|
mainTableName: "",
|
|
|
- table_name_des: "",
|
|
|
+ tableNameDes: "",
|
|
|
tablePrimaryKey: "",
|
|
|
sortFieldName: "",
|
|
|
sortType: "",
|
|
@@ -456,6 +514,19 @@ export default {
|
|
|
},
|
|
|
},
|
|
|
methods: {
|
|
|
+ // 列名变化回调
|
|
|
+ changeModel() {
|
|
|
+ console.log("列", this.datas);
|
|
|
+ let newObject = { }
|
|
|
+ // newObject.fieldName = `${this.datas.tableName}.${this.datas.fieldName}`;
|
|
|
+ // newObject.value = "#{x}";
|
|
|
+ // newObject.operator = "=";
|
|
|
+ // newObject.type = "1";
|
|
|
+ // console.log(newObject);
|
|
|
+ // this.tableQueryConditions.push(newObject);
|
|
|
+ // console.log(this.tableQueryConditions);
|
|
|
+ // this.lieData = this.datas.jsonData[0].fieldName;
|
|
|
+ },
|
|
|
changeType(row) {
|
|
|
row.value = "#{userID}";
|
|
|
},
|
|
@@ -477,7 +548,7 @@ export default {
|
|
|
fieldDescription: "",
|
|
|
value: "",
|
|
|
operator: "=",
|
|
|
- type: 0,
|
|
|
+ type: "0",
|
|
|
});
|
|
|
},
|
|
|
// 保存字段配置回调
|
|
@@ -527,7 +598,7 @@ export default {
|
|
|
async mainTableChangeHandler(val) {
|
|
|
if (val) {
|
|
|
this.mainTableFieldOptions = await this.getFieldOptions(val);
|
|
|
- this.listQueryData.mainForm.table_name_des = this.tableList.find(
|
|
|
+ this.listQueryData.mainForm.tableNameDes = this.tableList.find(
|
|
|
(item) => {
|
|
|
return item.tableName == val;
|
|
|
}
|
|
@@ -543,70 +614,85 @@ export default {
|
|
|
},
|
|
|
confirmHandler() {
|
|
|
let res = {};
|
|
|
- let { mainTableName, table_name_des, tablePrimaryKey, sortFieldName } =
|
|
|
+ let { mainTableName, tableNameDes, tablePrimaryKey, sortFieldName } =
|
|
|
this.listQueryData.mainForm;
|
|
|
- res.table_name_des = table_name_des;
|
|
|
+ let tableNameDesString = JSON.stringify(tableNameDes);
|
|
|
+ res.tableNameDes = tableNameDesString;
|
|
|
res.isSingleTable = this.listQueryData.isSingleTable;
|
|
|
// 表数据 目前单表
|
|
|
- res.table_names = [
|
|
|
+ let tableNames = [
|
|
|
{
|
|
|
tableName: mainTableName,
|
|
|
- asName: mainTableName,
|
|
|
+ tableAsName: mainTableName,
|
|
|
isMain: true,
|
|
|
},
|
|
|
];
|
|
|
+ let tableNamesSteing = JSON.stringify(tableNames);
|
|
|
+ res.tableNames = tableNamesSteing;
|
|
|
// 展示描述
|
|
|
- res.table_column_name = [];
|
|
|
- res.table_column_desc = [];
|
|
|
+ res.tableColumnName = [];
|
|
|
+ res.tableColumnDesc = [];
|
|
|
this.mainTableData.forEach((item, index) => {
|
|
|
let nameItem = {},
|
|
|
descItem = {};
|
|
|
let { tableName, fieldName, fieldDescription, columnAttibute } = item;
|
|
|
+ const columnAttributeString = JSON.stringify({
|
|
|
+ isDateColumn: columnAttibute?.isDateColumn
|
|
|
+ ? columnAttibute?.isDateColumn
|
|
|
+ : false,
|
|
|
+ dateFormat: columnAttibute?.dateFormat
|
|
|
+ ? columnAttibute?.dateFormat
|
|
|
+ : "",
|
|
|
+ isShow: columnAttibute?.isShow ? columnAttibute?.isShow : false,
|
|
|
+ });
|
|
|
nameItem = {
|
|
|
tbname: tableName,
|
|
|
fieldName: fieldName,
|
|
|
fieldAsName: camelCase(tableName + "_" + fieldName),
|
|
|
field_des: fieldDescription,
|
|
|
- column_attribute: {
|
|
|
- isDateColumn: columnAttibute?.isDateColumn
|
|
|
- ? columnAttibute?.isDateColumn
|
|
|
- : false,
|
|
|
- dateFormat: columnAttibute?.dateFormat
|
|
|
- ? columnAttibute?.dateFormat
|
|
|
- : "",
|
|
|
- isShow: columnAttibute?.isShow ? columnAttibute?.isShow : false,
|
|
|
- },
|
|
|
+ column_attribute: columnAttributeString,
|
|
|
};
|
|
|
descItem = {
|
|
|
column: camelCase(tableName + "_" + fieldName),
|
|
|
columnDes: fieldDescription,
|
|
|
columnSort: index + 1,
|
|
|
};
|
|
|
- res.table_column_name.push(nameItem);
|
|
|
- res.table_column_desc.push(descItem);
|
|
|
+ res.tableColumnName.push(nameItem);
|
|
|
+ res.tableColumnDesc.push(descItem);
|
|
|
});
|
|
|
// 查询条件
|
|
|
- res.table_query_condition = this.queryContionTableData.map((item) => {
|
|
|
+ let queryData = {}
|
|
|
+ this.queryContionTableData.map((item) => {
|
|
|
let { fieldName, tableName, value, operator, type } = item;
|
|
|
- return {
|
|
|
- fieldName: tableName + "." + fieldName,
|
|
|
- value,
|
|
|
- operator,
|
|
|
- type,
|
|
|
- };
|
|
|
+ // let queryData = {}
|
|
|
+ queryData.fieldName = tableName + "." + fieldName;
|
|
|
+ queryData.value = value;
|
|
|
+ queryData.operator = operator;
|
|
|
+ queryData.type = type;
|
|
|
+
|
|
|
});
|
|
|
+ this.tableQueryConditions.push(queryData)
|
|
|
+ console.log(this.tableQueryConditions);
|
|
|
+ let tableQueryConditionsString = JSON.stringify(this.tableQueryConditions);
|
|
|
+ res.tableQueryConditions = tableQueryConditionsString;
|
|
|
// 排序
|
|
|
- res.tablelistSort = {
|
|
|
+ let tablelistSort = {
|
|
|
DataSort:
|
|
|
this.listQueryData.mainForm.mainTableName +
|
|
|
"." +
|
|
|
this.listQueryData.mainForm.sortFieldName,
|
|
|
DataSortType: this.listQueryData.mainForm.sortType,
|
|
|
};
|
|
|
+ let tablelistSortString = JSON.stringify(tablelistSort);
|
|
|
+ res.tablelistSort = tablelistSortString;
|
|
|
+ res.listMapValue = {};
|
|
|
+ const key = this.datas.componentKey;
|
|
|
+ res.listMapValue[key] = this.listQueryData.mainForm.mainTableName;
|
|
|
console.log(res);
|
|
|
this.datas.jsonData.listData = res;
|
|
|
+ this.$emit("data-list", this.datas.jsonData.listData);
|
|
|
console.log(this.datas);
|
|
|
- // this.editOpen = false;
|
|
|
+ this.editOpen = false;
|
|
|
},
|
|
|
async getAllTable() {
|
|
|
let data = {
|
|
@@ -630,6 +716,25 @@ export default {
|
|
|
this.$message.error("网络异常,请稍后再试");
|
|
|
}
|
|
|
},
|
|
|
+ async getFieldOptions1(value, tempData) {
|
|
|
+ let data = {
|
|
|
+ databaseName: this.databaseName,
|
|
|
+ databaseType: this.databaseType,
|
|
|
+ tableName: value,
|
|
|
+ };
|
|
|
+ try {
|
|
|
+ let res = await getListName(data);
|
|
|
+ if (tempData) {
|
|
|
+ console.log(res, 456);
|
|
|
+ tempData.fieldOptions = res;
|
|
|
+ } else {
|
|
|
+ console.log(res, 4567);
|
|
|
+ this.fieldList = res;
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ this.$message.error("网络异常,请稍后再试");
|
|
|
+ }
|
|
|
+ },
|
|
|
},
|
|
|
computed: {
|
|
|
...mapState({
|