middleground_code_v2/src/views/newIntegrationTask/foregroundTask/rightDialog.vue

419 lines
12 KiB
Vue
Raw Normal View History

2024-03-26 11:18:19 +08:00
<template>
<div>
<base-right-dialog
size="1000px"
ref="baseRightDialog"
:footerShow="true"
:dialogVisible.sync="dialogVisible"
:title="dialogTitle + ' 集成前台任务'"
@handleClose="handleDialogClose"
:type="dialogType"
:submitShow="submitShow"
@handleConfirmClick="handleConfirmClick"
>
<base-form
ref="basicsForm"
:formRow="formRow"
:isFunBtn="false"
:rules="basicsRules"
class="dialog_form"
:spanWidth="`120px`"
:loading="vLoading"
>
<template #plugName="{row}">
<div>
<baseNewSelect
:lookflag="false"
:ruleForm="row"
:disabled="!submitShow"
v-model="row['plugName']"
@selectChangeHandle="selectChangeHandle"
></baseNewSelect>
</div>
</template>
</base-form>
<base-table
:border="true"
:showIndex="true"
:tableColumn="tableVersionColumn"
:tableData="tableVersionData"
:funWidth="80"
:funData="funData"
@onFunc="onFunc"
>
<!-- 编码-->
<template v-slot:argName="{ row }">
<div style="width: 100%">
{{row.argName}}
</div>
</template>
<template v-slot:argValue="{ row }">
<div style="width: 100%">
<!-- 若参数类型为1 字符串 否则为2 日期-->
<template v-if="row.argType==1">
<template v-if="!submitShow">{{row.argValue}}</template>
<el-input
v-else
v-model="row.argValue"
clearable
type="text"
:disabled="!submitShow"
></el-input>
</template>
<template v-else>
<template v-if="!submitShow">{{row.startDate}}-{{row.endDate}}</template>
<template v-else>
<el-date-picker
v-model="row.startDate"
type="date"
placeholder="选择开始日期"
:disabled="!submitShow"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd">
</el-date-picker>
<el-date-picker
v-model="row.endDate"
type="date"
placeholder="选择结束日期"
:disabled="!submitShow"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd">
</el-date-picker>
</template>
</template>
</div>
</template>
<template v-slot:argType="{ row }">
<div style="width: 100%">
<el-radio-group v-model="row.argType" :disabled="true">
<el-radio label="1">字符串</el-radio>
<el-radio label="2">日期</el-radio>
</el-radio-group>
</div>
</template>
<template v-slot:remark="{ row }">
<div style="width: 100%">
<template v-if="!submitShow">{{row.remark}}</template>
<el-input
v-else
v-model="row.remark"
clearable
type="text"
:disabled="!submitShow"
></el-input>
</div>
</template>
</base-table>
</base-right-dialog>
</div>
</template>
<script>
import baseRightDialog from "@/components/base/baseRightDialog";
import baseNewSelect from "./baseNewSelect.vue"
import baseForm from "@/components/base/baseNewForm";
import baseTable from "@/components/base/baseTable";
import configData from "./configData";
import { authApi } from "@/api/apis/auth";
export default {
components: {
baseRightDialog,
baseForm,
baseTable,
baseNewSelect
},
data() {
return {
dialogVisible: false,
dialogTitle: "",
dialogType: "",
formRow: configData.formRow,
basicsRules: configData.basicsRules,
vLoading: false,
newMarryOptions: [],
submitShow: true,
loadingType: true,
tableVersionData: [],
tableVersionColumn: configData.tableVersionColumn,
funData: [],
isEdit: false,
select_dist:{},
plugNameOptions:[],
};
},
mounted() {
this.initSelect()
},
methods: {
// 插件下拉
async initSelect(){
let res = await authApi(
"pluginService",
"plugins",
"queryPluginsByType",
"",
{
"pluginType": "1"
}
);
if(res.status == 200){
console.log(res.attribute)
res.attribute.forEach(item=>{
this.$set(this.select_dist,item.pluginId,item)
})
this.formRow[0].elCol[0].options = res.attribute
}
},
//下拉改变事件
selectChangeHandle(val, options){
if(!val){
this.tableVersionData=[]
return
}
//找到这条
let obj = options.find(item=>{
return item.plugName === val
})
console.log(obj)
this.$set(this.$refs.basicsForm.ruleForm,'plugId',obj.plugId)
this.$set(this.$refs.basicsForm.ruleForm,'plugName',obj.plugName)
this.searchInfo(obj.plugId)
},
//下拉后查询单据详情
async searchInfo(plugId){
let params = {
plugId
};
let res = await authApi(
"sysPlugArgService",
"integrationTaskService",
"getPlugArgByPlugId",
"",
params
);
console.log(res,'res')
if(res.status ==200){
//数据处理
let arr = []
res.attribute.forEach(item=>{
arr.push({
startDate:"",
endDate:"",
remark:"",
argValue:"",
argName:item.argName,
argCode:item.argCode,
argType:item.argType,
})
})
this.tableVersionData = arr
}
},
openDialog(type, row) {
this.queryProductClassfy();
this.formRow = configData.formRow;
this.submitShow = true;
this.isEdit = false
this.funData = [
]
// 新增
if (type == "add") {
this.dialogTitle = "新增";
this.dialogType = "add";
}
// 编辑
if (type == "edit") {
this.isEdit = true
this.dialogTitle = "编辑";
this.dialogType = "edit";
this.productGetById(row.id);
}
// 查看
if (type == "show") {
this.funData = Object.assign([],[])
this.submitShow = false;
this.formRow = configData.formRowShow;
this.dialogTitle = "查看";
this.dialogType = "show";
this.productGetById(row.id);
}
this.dialogVisible = true;
},
// 编辑详情
async productGetById(id) {
let params = {
id: id,
};
let res = await authApi(
"sysIntegratedForegroundTaskService",
"integrationTaskService",
"getIntegratedForegroundTask",
"",
params
);
if (res.status == "200") {
this.$nextTick(() => {
this.$refs.basicsForm.incomingParameters(res.attribute);
this.tableVersionData=res.attribute.sysIntegratedForegroundTaskDetailEntityList
this.tableVersionData.forEach(item=>{
if(item.argType ==2){
//日期处理
this.$set(item,'startDate',item.argValue.split("/")[0])
this.$set(item,'endDate',item.argValue.split("/")[1])
}
})
// let result = [];
// this.tableVersionData = Object.assign([], result);
});
}
},
addVersionDialog() {
let obj = {
argName:"",
argCode:"",
argType:"1",
remark:"",
};
this.tableVersionData.push(obj);
},
// 删除
onFunc(index, row) {
if (index == 0) {
this.$delConfirm().then(() => {
this.tableVersionData.forEach((item, itemIndex) => {
if (item.id === row.id) {
this.tableVersionData.splice(itemIndex, 1);
}
});
});
}
},
// 弹窗关闭
handleDialogClose() {
this.tableVersionData = Object.assign([], []);
this.$refs.basicsForm.resetFields();
this.dialogVisible = false;
},
// 弹窗确认按钮
handleConfirmClick() {
this.$refs.basicsForm.$refs["ruleForm"].validate((valid) => {
if (!valid) {
return;
} else {
let flag = this.tableVersionData.some((item,index)=>{
//日期特别处理 例2024-12-13/2024-12-14
if(item.argType ==2){
//判断开始时间和结束时间
let startDate = new Date(item.startDate); // 开始日期
let endDate = new Date(item.endDate); // 结束日期
if(startDate > endDate){
this.$vmNews(`${index+1}行结束时间不能大于开始时间`)
return true
}
this.$set(item,'argValue',item.startDate + "/" +item.endDate)
}
})
if(flag) return
let params = {
...this.$refs.basicsForm.ruleForm,
sysIntegratedForegroundTaskDetailEntityList: this.tableVersionData,
};
if (this.dialogType == "add") {
this.openLoading("submit");
this.productSaveDto(params);
}
if (this.dialogType == "edit") {
this.openLoading("submit");
this.productUpdateDto(params);
}
}
});
},
// 新增保存
async productSaveDto(params) {
let res = await authApi(
"sysIntegratedForegroundTaskService",
"integrationTaskService",
"saveIntegratedForegroundTask",
"",
params
);
if (res.status == "200") {
this.handleDialogClose();
this.$vmNews("新增成功", "success");
this.$emit("resetTable");
}
},
// 编辑保存
async productUpdateDto(params) {
let res = await authApi(
"sysIntegratedForegroundTaskService",
"integrationTaskService",
"updateIntegratedForegroundTask",
"",
params
);
if (res.status == "200") {
this.handleDialogClose();
this.$vmNews("更新成功", "success");
this.$emit("resetTable");
}
},
// 获取所有产品分类
async queryProductClassfy() {
let params = {
tab_name: "sys_product",
column_name: "classify",
};
let res = await authApi(
"generalServiceImpl",
"dictionaryshop",
"selectDictionaryshop",
"",
params
);
if (res.status == "200") {
this.formRow[1].elCol[0].options = res.attribute;
}
},
},
};
</script>
<style scoped lang="scss">
.dialogList {
padding: 16px 0;
border-top: 1px solid #dcdfe6;
display: flex;
flex-direction: column;
}
.updateBtn {
border: 1px solid #ebedf1;
padding: 5px 0;
border-radius: 3px;
text-align: center;
font-size: 14px;
cursor: pointer;
width: 100px;
}
.updateBtn:hover {
color: #1890ff;
border-color: #badeff;
background-color: #e8f4ff;
}
::v-deep .el-table__body-wrapper.is-scrolling-none {
height: auto !important;
}
::v-deep .app-container {
height: auto !important;
}
</style>