1、metaTable中加入字段主键设置

2、添加删除策略配置
3、列表配置中加入"HIDDEN"配置,以及预览中加入解析逻辑
This commit is contained in:
2019-06-10 17:55:46 +08:00
parent 1f5ea920b4
commit 4037398598
18 changed files with 350 additions and 30 deletions

View File

@@ -67,7 +67,10 @@
<button @click="status='detail'" :class="['btn',{'btn-primary':status=='detail'}]" type="button"> 详情配置</button>
</span>
<span class="input-group-btn">
<button @click="status='edit'" :class="['btn',{'btn-primary':status=='form'}]" type="button"> 表单配置</button>
<button @click="status='edit'" :class="['btn',{'btn-primary':status=='edit'}]" type="button"> 表单配置</button>
</span>
<span class="input-group-btn">
<button @click="status='del'" :class="['btn',{'btn-primary':status=='del'}]" type="button"> 删除配置</button>
</span>
<span class="input-group-btn" style="padding-left: 10px">
@@ -137,7 +140,8 @@
<th></th>
<th>数据字段</th>
<th>表头名称</th>
<th>格式化</th>
<th>格式化类型</th>
<th>附加参数</th>
</tr>
</thead>
<tr v-for="(item, index) in serviceInfo.shows">
@@ -146,7 +150,19 @@
</td>
<td v-text="item.col" style="background-color: rgb(235, 235, 228);"></td>
<td style="padding: 1px;"><input v-model="item.label" class="form-control" style="width: 130px;padding: 0px"></td>
<td style="padding: 1px;">
<select v-model="item.inType" class="form-control" style="width: 130px">
<option></option>
<option v-for="x in inTypes" :value="x">{{x}}</option>
</select>
</td>
<td style="padding: 1px;" title="格式化类型为funs或qtask的时候需要填写附加参数">
<input v-show="item.inType == 'FUNC' || item.inType == 'QTASK' || item.inType == 'DICT'" v-model="item.inExt" class="form-control" style="width: 130px;padding: 0px">
<input disabled v-show="item.inType != 'FUNC' && item.inType != 'QTASK' && item.inType != 'DICT'" v-model="item.inExt" class="form-control" style="width: 130px;padding: 0px">
</td>
<!--
<td style="padding: 1px;"><input v-model="item.fmt" class="form-control" style="width: 130px;padding: 0px"></td>
-->
</tr>
</table>
</div>
@@ -293,6 +309,49 @@
</tbody>
</table>
</div>
<!-- del -->
<div id="del" v-show="status=='del'">
<div style="padding-left: 10px;background-color: #ccc;width: 100%"> 删除策略</div>
<div class="panel-body" style="overflow:auto;">
<form class="form-horizontal">
<!--
<label class="radio-inline">
<input type="radio" v-model="serviceInfo.dels.cate" value="UP_FIELD"> 策略一(更新主表字段)
</label>
-->
<label class="radio-inline">
<input type="radio" v-model="serviceInfo.dels.cate" value="SQL"> 策略一执行完整SQL
</label>
<label class="radio-inline">
<input disabled type="radio" v-model="serviceInfo.dels.cate" value="QTASK"> 策略二执行QTask
</label>
<br>
<br>
<div v-show="serviceInfo.dels.cate == 'UP_FIELD'" class="form-group">
<label for="name" class="col-md-2">SQL</label>
<div class="col-md-8">
<textarea v-model="serviceInfo.dels.sql1" disabled style="width: 100%;" rows="5"></textarea>
<!--
<input v-model="serviceInfo.dels.name" class="form-control" id="name" placeholder="请输入Table名称">
-->
</div>
</div>
<div v-show="serviceInfo.dels.cate == 'SQL'" class="form-group">
<label for="name" class="col-md-2">SQL</label>
<div class="col-md-8">
<textarea v-model="serviceInfo.dels.sql" style="width: 100%;" rows="5"></textarea>
<!--
<input v-model="serviceInfo.dels.name" class="form-control" id="name" placeholder="请输入Table名称">
-->
</div>
</div>
</form>
</div>
</div>
</div>
@@ -340,7 +399,7 @@
</row>
<script>
let {getServiceInfo, getServiceDetail, getServiceList, tableLinkList, serviceSave, showSave, filterSave, exportSave, detailSave, editSave} = meta;
let {getServiceInfo, getServiceDetail, getServiceList, tableLinkList, serviceSave, showSave, filterSave, exportSave, detailSave, editSave, delSave} = meta;
let {showOk} = red
var vm = new Vue({
@@ -350,7 +409,7 @@
sheetArr: ["a"],//别名
sheet: "a",//别名
inTypes: ["INPUT", "SELECT_EXT", "INPUT_DT"],
inTypes: ["INPUT", "DICT", "INPUT_DAY", "INPUT_TIME", "FUNC", "QTASK", "HIDDEN"],
dataTypes: ["bigint(20)", "varchar(255)", "varchar(64)", "varchar(32)", "varchar(16)", "int(11)", "int(3)", "int(2)", "datetime"],
filterCate: ["EQUAL", "NOTEQUAL", "LIKE", "IN"],
serviceInfo: {
@@ -363,6 +422,7 @@
filters: [{name: '', label: '', filterType: ['']}],
details: [],
edits: [],
dels: {cate: "", sql: "", qtask: ""}
},
serviceDetail: {tables: {a: {items: []}}},
@@ -403,6 +463,8 @@
//edits
editArr: [],
//del
},
watch: {
status: function (v) {
@@ -460,6 +522,18 @@
}
this.sheetArr = arr;//别名
this.sheet = arr[0];
// 处理dels 策略
let dels = this.serviceInfo["dels"] || {}
//console.log("dels", dels)
let cate = dels["cate"] || "UP_FIELD"
let sql1 = dels["sql1"] || "update #(table) set status=9 where id=#(id);"
let sql = dels["sql"] || `update ${v['tables'][this.serviceInfo.table]['name']} set status=9 where id=#(id);`
let qtask = dels["qtask"] || ""
let serviceInfo = this.serviceInfo
serviceInfo["dels"] = {cate, sql1, sql, qtask}
this.serviceInfo = serviceInfo
},
sheet: function (v) {
this.table = v;
@@ -656,6 +730,7 @@
methods: {
loadInfo(name) {
getServiceInfo({name}, (json) => {
json.dels = json.dels || {cate:"", sql1:"", sql:"", qtask:""}
this.serviceInfo = json;
})
},
@@ -830,6 +905,11 @@
}
console.log(edits)
editSave({name: this.service, edits}).then(res => red.showOk())
} else if (vm.status == 'del') {
let dels = this.serviceInfo.dels
console.log(dels)
delSave({name: this.service, dels}).then(res => red.showOk())
} else if (vm.status == 7) {
console.log(vm.row);
red.postX("/meta/dbplatupdate", vm.row).then(() => showOk())