From 1e363c55cfef0a4e2a202d4c27d8c1da03075c83 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期二, 23 一月 2024 14:25:51 +0800
Subject: [PATCH] 主题库定义-输入框清空事件
---
Source/UBCS-WEB/src/components/work/BusinessWork.vue | 257 +++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 225 insertions(+), 32 deletions(-)
diff --git a/Source/UBCS-WEB/src/components/work/BusinessWork.vue b/Source/UBCS-WEB/src/components/work/BusinessWork.vue
index 97e3f18..6a65f49 100644
--- a/Source/UBCS-WEB/src/components/work/BusinessWork.vue
+++ b/Source/UBCS-WEB/src/components/work/BusinessWork.vue
@@ -1,54 +1,250 @@
<template>
<div>
- <el-button @click="add"></el-button>
- <el-table :data="data">
- <el-table-column
- fixed
- type="selection"
- width="55">
+ <el-button @click="HandlerSave" v-if="hasEditor" size="small" type="primary" style="margin-bottom: 10px">淇濆瓨</el-button>
+ <el-table
+ v-loading="isLoading"
+ :data="tableData"
+ max-height="700"
+ style=""
+ @cell-click="handleCellClick"
+ >
+ <el-table-column fixed label="搴忓彿" type="index" width="55">
</el-table-column>
<el-table-column
- fixed
- label="搴忓彿"
- type="index"
- width="55">
+ v-for="item in this.tableHeadData"
+ :key="item.id"
+ :label="item.label"
+ :prop="item.prop"
+ :sortable="item.sortable"
+ :formatter="item.formatter"
+ :width="item.width"
+ :show-overflow-tooltip="true"
+ align="center"
+ >
+ <template slot-scope="{ row }">
+ <el-input
+ v-if="editingRow === row && editShow== item.prop && item.edit == 'input'" v-model="row[item.prop]"
+ @blur="editingRows=null"></el-input>
+ <el-input-number size="small" controls-position="right"
+ v-if="editingRow === row && editShow== item.prop && item.edit == 'number'" v-model="row[item.prop]"
+ @blur="editingRows=null" :style="{width:(item.width-10)+'px'}"></el-input-number>
+ <el-select filterable default-first-option slot="prepend" @change="changeSelect"
+ v-if="editingRow === row && editShow== item.prop && item.edit == 'select' " v-model="row[item.prop]" @blur="editingRows=null">
+ <el-option
+ v-for="optionItem in item.dicData"
+ :key="optionItem.key"
+ :label="optionItem.value"
+ :value="optionItem.key">
+ </el-option>
+ </el-select>
+ <el-switch
+ v-if="editingRow === row && editShow== item.prop && (item.edit === 'switch' || item.edit === 'truefalse')" v-model="row[item.prop]" active-value="true"
+ inactive-value="false">
+ </el-switch>
+ <el-date-picker
+ v-if="editingRow === row && editShow== item.prop && (item.edit == 'date' || item.edit == 'datetime') " v-model="row[item.prop]" @blur="editingRows=null"
+ :type="item.edit" :format="item.dateFormate" :value-format="item.dateFormate"
+ placeholder="閫夋嫨鏃ユ湡">
+ </el-date-picker>
+ <vciWebRefer
+ :key="item.prop" :data-key="item.prop"
+ v-if="editingRow === row && editShow== item.prop && item.edit == 'refer'"
+ :referConfig="item.referConfig || {}"
+ :value="row[item.referConfig.field] || row[item.prop]"
+ :text="row[item.referConfig.showField]" :disabled="item.disabled" :display="item.display"
+ @setReferValue="setReferValue"
+ ></vciWebRefer>
+ <span v-else v-html="formatter(row,item)"></span>
+ </template>
</el-table-column>
</el-table>
</div>
</template>
<script>
-import {businese,add} from '@/api/work/businese'
+import {businese} from '@/api/work/businese'
+import {FlowTable, batchUpdateCode} from "@/api/GetItem";
+import {validatenull} from "@/util/validate";
+import {getDictionary} from "@/api/system/dict";
+import vciWebRefer from "../refer/vciWebRefer.vue";
+
export default {
name: "BusinessWork",
- props:['oid','templateId'],
+ components: { vciWebRefer },
+ props:['ids','templateId',"taskId","modelKey","codeClassifyOid",'stageAttrs'],
data() {
return {
- data:[
- {
- label:'app'
- }
- ]
+ BuinessOids:[],
+ isLoading:false,
+ tableHeadData:[],
+ tableData:[],
+ editingRow: null,
+ editShow: "",
+ editAttr: "",
+ hasEditor:false,
+ columnType: {
+ text: "input",
+ combox: "select",
+ truefalse: "switch",
+ number: "number",
+ textarea: "textarea",
+ datetime: "datetime",
+ date: "date",
+ refer: "refer"
+ }
+ }
+ },
+ watch:{
+ ids:{
+ handler(newval,oldval){
+ this.BuinessOids=newval;
+ this.CrudHeaderRend()
+ this.BuinseseRend()
+ },
+ deep:true
+ },
+ stageAttrs(newval,oldval){
+ this.hasEditor=newval.length>0;
}
},
created() {
- businese({oid: this.oid,
- templateOid: this.templateId}).then(res=>{
- console.log(res)
- })
+
+ },
+ mounted() {
},
methods:{
- add(){
- // businese({oid: this.oid[2],
- // templateOid: this.templateId}).then(res=>{
- // console.log(res)
- // })
- add({
+ HandlerSave(){
+ if(!validatenull(this.editingRow)) {
+ this.editingRow = null;
+ //淇濆瓨
+ let datas = this.tableData.map(item => {
+ let newitem = {
+ codeClassifyOid: item.codeclsfid,
+ templateOid: this.templateId,
+ editInProcess: true,
+ data: item,
+ oid: item.oid,
+ ts: item.ts
+ }
+ return newitem;
+ })
+ batchUpdateCode(datas).then(res => {
+ if (res.data.success) {
+ this.$message.success("淇敼鎴愬姛");
+ this.BuinseseRend()
+ }
+ })
+ }
+ },
+ //琛ㄦ牸澶存覆鏌�
+ CrudHeaderRend() {
+ if (this.codeClassifyOid != "") {
+ var data=new FormData()
+ data.append('templateId', this.templateId)
+ data.append('taskId', this.taskId)
+ data.append('modelKey', this.modelKey)
+ data.append('codeClassifyOid', this.codeClassifyOid)
+ FlowTable({
+ 'templateId': this.templateId,
+ 'taskId': this.taskId,
+ 'modelKey': this.modelKey,
+ 'codeClassifyOid': this.codeClassifyOid
+ }).then((res) => {
+ this.options = res.data.tableDefineVO.seniorQueryColumns;
+ this.List = res.data.tableDefineVO.cols[0];
+ this.tableHeadData=[];
+ this.List.forEach((item) => {
+ let editAttr=this.stageAttrs.filter(stageitem => stageitem.attrId == item.field || (item.fieldType=='combox' && stageitem.attrId+'Text' == item.field)|| (item.fieldType=='refer' && stageitem.attrId+'name' == item.field));
+ let columnItem = {
+ label: item.title,
+ prop: item.field,
+ type: this.columnType[item.type],
+ sortable: item.sort,
+ width: item.minWidth
+ };
+ if(item.field == 'id' && validatenull(item.templet)){
+ //浼佷笟缂栫爜鐨勯粯璁ゆ坊鍔犺秴閾炬帴,鏆傛湭瀹炵幇
+ columnItem.formatter = '';
+ }else {
+ if (item.templet && typeof (item.templet) == 'string' && !validatenull(item.templet) && item.templet.indexOf("function(row,column)") > -1) {
+ columnItem.formatter = eval("(" + item.templet + ")");
+ } else if (item.fieldType == "truefalse") {
+ columnItem.formatter = function (row, column) {
+ return row[column.property] == 'true' || row[column.property] == '1' ? '鏄�' : '鍚�'
+ }
+ }
+
+ }
+ if(editAttr.length>0) {
+ columnItem.edit= this.columnType[item.fieldType]
+ if (columnItem.edit == 'select') {
+ //闇�瑕佽幏鍙栦笅鎷夋鏁版嵁
+ columnItem.dicData = item.data || this.geDictData(item.comboxKey)
+ columnItem.formatter = function (row, column) {
+ let d=column.dicData.find((value, keys, arr) => {
+ return value.key == row[column.prop.replace('Text','')];
+ })
+ return row[column.prop] =(d && d.value) || row[column.prop]
+ }
+ }
+ if (columnItem.edit == 'refer') {
+ columnItem.referConfig = {
+ title: item.title,
+ showField: item.showField || item.field,
+ field: item.sortField || item.field,
+ options: item.referConfig
+ }
+ columnItem.display=!item.hidden;
+ columnItem.disabled=item.readOnly
+ }
+ }
+
+ this.tableHeadData.push(Object.assign(item, columnItem))
+ });
+ });
+ }
+ },
+ //琛ㄦ牸鏁版嵁
+ BuinseseRend(){
+ businese({
btmType:'wupin',
- 'conditionMap[oid]':'D49A28F3-3740-D0EF-A3C6-5A71CA6978CC'
+ 'conditionMap[oid]':this.BuinessOids.toString()
}).then(res=>{
- console.log(res)
+ this.tableData = res.data.data;
})
+ },
+ // 寮傛鑾峰彇瀛楀吀鏁版嵁
+ geDictData(dictKey) {
+ getDictionary({code: dictKey}).then((res) => {
+ if (res.data && res.data.code === 200) {
+ return (res.data.data || []).map((itm) => {
+ itm.value = itm.dictValue;
+ itm.key = itm.dictKey;
+ return itm;
+ });
+ }
+ });
+ },
+ // 鐩戝惉鍗曞厓鏍肩偣鍑讳簨浠跺苟瀛樺偍姝e湪缂栬緫鐨勮
+ handleCellClick(row, column, cell, event) {
+ this.editingRow = row;
+ this.editShow = column.property;
+ },
+ formatter(row, column){
+ if(column.formatter){
+ return column.formatter(row,column)
+ }else{
+ return row[column.prop]
+ }
+ },
+ setReferValue(data) {
+ if (data.field) {
+ this.editingRow[data.field] = data.value || "";
+ this.editingRow[data.showField] = data.text || "";
+ }
+ },
+ changeSelect(data){
+ this.editingRow[this.editShow.replace('Text','')] = data;
}
}
}
@@ -57,6 +253,3 @@
<style scoped>
</style>
-
-<!--mdmEngineController/getTableDataByOids?page=1&limit=-1&btmType=wupin&conditionMap%5B%27oid%27%5D=90DC514B-396D-9664-67D0-1587640FE15E&_=1687773044552-->
-<!--mdmEngineController/getTableDataByOids?conditionMap%5Boid%5D=D49A28F3-3740-D0EF-A3C6-5A71CA6978CC-->
--
Gitblit v1.9.3