lihang
2023-07-13 7ce592bb5a5b9e0dc78786e727f042b95ebc81c8
Source/UBCS-WEB/src/components/Tree/classifyTreeform.vue
@@ -1,15 +1,193 @@
<template>
  <avue-form v-model="TreeNewForm" :option="option" @submit="submit">
  </avue-form>
  <div>
    <avue-form v-model="loneTreeNewForm" :option="option" v-if="flag == 'renonly'">
    </avue-form>
    <avue-form v-model="loneTreeNewForm" :option="this.options" @submit="submits" v-else-if="flag == 'edit'">
    </avue-form>
    <div>
<!--     编码规则-->
      <el-dialog  :visible.sync="MasterdialogVisible"   title="为【编码规则】选取值" append-to-body>
        <template>
          <el-select v-model="SelectValue" placeholder="请选择" style="width: 135px">
            <el-option
              v-for="item in SelectOption"
              :key="item.value"
              :label="item.label"
              :value="item.value"
              style="width: 150px">
            </el-option>
          </el-select>
          <el-input style="width: 260px;margin-left: 15px" placeholder="输入值后进行模糊查询" v-model="SelectFInd"></el-input>
          <el-button size="small"  type="primary" plain @click="SelectFindeHandler" style="margin-left: 20px">查询</el-button>
        </template>
        <avue-crud :data="masterData" :option="masterOption" @select="masterSelect"></avue-crud>
        <div style="height: 30px">
          <div style="display: inline-block;float: left;border: 1px solid #eee;padding: 5px;margin-top: 5px;font-size: 14px " >已设置的值为:[{{this.loneTreeNewForm.coderuleoidName}}]</div>
          <div style="padding-top: 10px;display: flex; justify-content: flex-end;float: right;overflow: hidden" >
            <el-button type="primary" size="small" @click="MasterHandlerClick">确定</el-button>
            <el-button  size="small" @click="MasterdialogVisible=false">取消</el-button>
          </div>
        </div>
      </el-dialog>
<!--      关键属性查询规则-->
      <el-dialog  :visible.sync="KeydialogVisible"   title="为【关键属性查询规则】选取值" append-to-body>
        <template>
          <el-select v-model="SelectValue" placeholder="请选择" style="width: 135px">
            <el-option
              v-for="item in SelectOption"
              :key="item.value"
              :label="item.label"
              :value="item.value"
              style="width: 150px">
            </el-option>
          </el-select>
          <el-input style="width: 260px;margin-left: 15px" placeholder="输入值后进行模糊查询" v-model="SelectFInd"></el-input>
          <el-button size="small"  type="primary" plain @click="KeySelectFindeHandler" style="margin-left: 20px">查询</el-button>
        </template>
        <avue-crud :data="KeyData" :option="masterOption" @select="KeySelect"></avue-crud>
        <div style="height: 30px">
          <div style="display: inline-block;float: left;border: 1px solid #eee;padding: 5px;margin-top: 5px;font-size: 14px " >已设置的值为:[{{this.loneTreeNewForm.codekeyattrrepeatoidName}}]</div>
          <div style="padding-top: 10px;display: flex; justify-content: flex-end;float: right;overflow: hidden" >
            <el-button type="primary" size="small" @click="KeyHandlerClick">确定</el-button>
            <el-button  size="small" @click="KeydialogVisible=false">取消</el-button>
          </div>
        </div>
      </el-dialog>
      <!--      相似项查询规则-->
      <el-dialog  :visible.sync="SimidialogVisible"   title="为【相似项查询规则】选取值" append-to-body>
        <template>
          <el-select v-model="SelectValue" placeholder="请选择" style="width: 135px">
            <el-option
              v-for="item in SelectOption"
              :key="item.value"
              :label="item.label"
              :value="item.value"
              style="width: 150px">
            </el-option>
          </el-select>
          <el-input style="width: 260px;margin-left: 15px" placeholder="输入值后进行模糊查询" v-model="SelectFInd"></el-input>
          <el-button size="small"  type="primary" plain @click="SimSelectFindeHandler" style="margin-left: 20px">查询</el-button>
        </template>
        <avue-crud :data="simData" :option="masterOption" @select="simSelect"></avue-crud>
        <div style="height: 30px">
          <div style="display: inline-block;float: left;border: 1px solid #eee;padding: 5px;margin-top: 5px;font-size: 14px " >已设置的值为:[{{this.loneTreeNewForm.codeResembleRuleOidName}}]</div>
          <div style="padding-top: 10px;display: flex; justify-content: flex-end;float: right;overflow: hidden" >
            <el-button type="primary" size="small" @click="simHandlerClick">确定</el-button>
            <el-button  size="small" @click="SimidialogVisible=false">取消</el-button>
          </div>
        </div>
      </el-dialog>
<!--      存储的业务类型-->
      <el-dialog  :visible.sync="BtmdialogVisible"   title="为【业务类型】选取值" append-to-body>
        <template>
          <el-select v-model="SelectValue" placeholder="请选择" style="width: 135px !important;">
            <el-option
              v-for="item in SelectOption"
              :key="item.value"
              :label="item.label"
              :value="item.value"
              style="width: 130px">
            </el-option>
          </el-select>
          <el-input style="width: 260px;margin-left: 15px" placeholder="输入值后进行模糊查询" v-model="SelectFInd"></el-input>
          <el-button size="small"  type="primary" plain @click="BtmSelectFindeHandler" style="margin-left: 20px">查询</el-button>
        </template>
        <avue-crud :data="BtmData" :option="masterOption" @select="btmSelect"></avue-crud>
        <div style="height: 30px">
          <div style="display: inline-block;float: left;border: 1px solid #eee;padding: 5px;margin-top: 5px;font-size: 14px " >已设置的值为:[{{this.loneTreeNewForm.btmTypeName}}]</div>
          <div style="padding-top: 10px;display: flex; justify-content: flex-end;float: right;overflow: hidden" >
            <el-button type="primary" size="small" @click="btmHandlerClick">确定</el-button>
            <el-button  size="small" @click="BtmdialogVisible=false">取消</el-button>
          </div>
        </div>
      </el-dialog>
    </div>
  </div>
</template>
<script>
import {defaultReferDataGrid,referDataGrid} from '@/api/MasterData/master'
import {TreeEditSave} from '@/api/template/templateAttr'
export default {
  name: "classifyTreeform.vue",
  props: ["TreeNewForm"],
  props: ['loneTreeNewForm','flag','Editclose','TreeFlag','nodeClickList'],
  data() {
    return {
      SelectFInd:"",
      masterName:"",
      masterOid:"",
      KeyName:"",
      KeyOid:"",
      simName:"",
      simOid:"",
      btmName:"",
      btmOid:"",
      btmId:"",
      masterInput:'',
      MasterSearchSelects:"",
      masterData:[],
      KeyData:[],
      simData:[],
      BtmData:[],
      SelectOption:[
        {
          value: 'name',
          label: '中文名称'
        },
        {
          value: 'id',
          label: '英文名称'
        }
      ],
      SelectValue:"",
      btmOption:{
        addBtn:false,
        index:true,
        border:true,
        selection:true,
        menu:false,
        height:380,
        column:[
          {
            label:'业务类型编号',
            prop:'id'
          },
          {
            label:'业务类型名称',
            prop:'name'
          },
          {
            label:'描述',
            prop:'description'
          }
        ]
      },
      masterOption:{
        addBtn:false,
        index:true,
        border:true,
        selection:true,
        menu:false,
        height:380,
        column:[
          {
            label:'英文名称',
            prop:'id'
          },
          {
            label:'中文名称',
            prop:'name'
          },
          {
            label:'描述',
            prop:'description'
          }
        ]
      },
      MasterdialogVisible:false,
      KeydialogVisible:false,
      SimidialogVisible:false,
      BtmdialogVisible:false,
      form: {
        name: "哈哈",
        sex: "男"
@@ -17,12 +195,13 @@
      option: {
        submitBtn:false,
        emptyBtn:false,
        column: [
          {
            label: '主题库/分类编号',
            prop: 'btmtypeid',
            labelWidth:128,
            readonly: true,
            prop: 'id',
            labelWidth:135,
            disabled: true,
            rules: [{
              required: true,
              message: "主题库/分类编号",
@@ -32,8 +211,8 @@
          {
            label: '主题库/分类名称',
            prop: 'name',
            readonly: true,
            labelWidth:128,
            disabled: true,
            labelWidth:135,
            rules: [{
              required: true,
              message: "主题库/分类名称",
@@ -44,12 +223,13 @@
            label:"描述",
            prop:"description",
            labelWidth:128,
            disabled: true,
          },
          {
            label: '存储的业务类型',
            prop: 'btmtypename',
            prop: 'btmTypeName',
            labelWidth:128,
            readonly: true,
            disabled: true,
            rules: [{
              required: true,
              message: "存储的业务类型",
@@ -60,30 +240,337 @@
            label:"编码规则",
            prop:"coderuleoidName",
            labelWidth:128,
            disabled: true,
          },
          {
            label:"关键属性查询规则",
            prop:"codekeyattrrepeatoidName",
            labelWidth:128,
            disabled: true,
          },
          {
            label:"相似查询规则",
            prop:"codeResembleRuleOidName",
            labelWidth:128,
            disabled: true,
          },
        ]
      },
      FormList: {}
      FormList: {},
      masterSelectList:[],
      KeySelectLIst:[],
      simSelectList:[],
      btmSelectList:[]
    }
  },
  computed:{
    options(){
      return{
          column: [
            {
              label: '主题库/分类编号',
              prop: 'id',
              labelWidth:128,
              rules: [{
                required: true,
                message: "主题库/分类编号",
                trigger: "blur"
              }]
            },
            {
              label: '主题库/分类名称',
              prop: 'name',
              labelWidth:128,
              rules: [{
                required: true,
                message: "主题库/分类名称",
                trigger: "blur"
              }]
            },
            {
              label:"描述",
              prop:"description",
              labelWidth:128,
            },
            {
              label: '存储的业务类型',
              prop: 'btmTypeName',
              labelWidth:128,
              focus:this.btmFoucus,
                // readonly: true,
              display:this.TreeFlag,
              rules: [{
                required: true,
                message: "存储的业务类型",
                trigger: "blur"
              }]
            },
            {
              label:"编码规则",
              prop:"coderuleoidName",
              labelWidth:128,
              focus:this.CodeFoucus,
              readonly: true,
            },
            {
              label:"关键属性查询规则",
              prop:"codekeyattrrepeatoidName",
              labelWidth:128,
              focus:this.Keyfouce,
              readonly: true,
            },
            {
              label:"相似查询规则",
              prop:"codeResembleRuleOidName",
              labelWidth:128,
              focus: this.simFouce,
              readonly: true,
            },
          ]
      }
    }
  },
  watch:{
  },
  created() {
  },
  methods: {
    submit(form, done) {
      this.$message.success(JSON.stringify(form));
      done()
    submits(form,done){
      if(this.TreeFlag){
        TreeEditSave(this.loneTreeNewForm).then(res=>{
          this.$message.success('修改成功');
          this.Editclose()
          this.$emit('referTreeForm');
          this.$emit('flushed');
          done()
        })
      }else {
        this.loneTreeNewForm.btmTypeName='';
        this.loneTreeNewForm.btmTypeId='';
        TreeEditSave(this.loneTreeNewForm).then(res=>{
          this.$message.success('修改成功');
          this.Editclose()
          this.$emit('referTreeForm');
          this.$emit('flushed');
          done()
        })
      }
    },
    error(err) {
      this.$message.success('请查看控制台');
      console.log(err)
      this.$message.success(err);
    },
    //编码规则查询
    SelectFindeHandler(){
      if(this.SelectValue == 'id'){
        const masterParameter={
          'conditionMap[id]':this.SelectFInd
        }
        this.MasterdefaultRend(masterParameter);
        this.SelectValue=""
        this.SelectFInd=""
      }else if(this.SelectValue == 'name'){
        const masterParameter={
          'conditionMap[name]':this.SelectFInd
        }
        this.MasterdefaultRend(masterParameter)
        this.SelectValue=""
        this.SelectFInd=""
      }
    },
    //编码规则失焦
    CodeFoucus(){
      this.MasterdialogVisible=true;
      this.MasterdefaultRend()
    },
    //编码规则确定
    MasterHandlerClick(){
      if(this.masterSelectList.length>1){
        this.$message.warning('只能选择一条数据')
      }else if(this.masterSelectList.length<=0){
        this.$message.warning('请选择一条数据')
      }else {
        this.MasterdialogVisible=false;
        this.masterSelectList=[]
        this.$set(this.loneTreeNewForm,'coderuleoidName',this.masterName)
        this.$set(this.loneTreeNewForm,'coderuleoid',this.masterOid)
        this.$emit('MasterHandler',this.loneTreeNewForm)
      }
    },
    //编码多选
    masterSelect(row){
      this.masterSelectList=row;
      this.masterName=row[0].name;
      this.masterOid=row[0].oid;
    },
    //编码接口
    MasterdefaultRend(masterParameter){
      defaultReferDataGrid({
        referType:'coderule',
        isMuti:'false',
        'conditionMap["lcstatus"]':'Released',
        ...masterParameter
      }).then(res=>{
        this.masterData=res.data.records;
      })
    },
    //关键属性失焦
    Keyfouce(){
      this.KeydialogVisible=true;
      this.KeydefaultRend()
    },
    //关键属性确定
    KeyHandlerClick(){
      if(this.KeySelectLIst.length>1){
        this.$message.warning('只能选择一条数据')
      }else if(this.KeySelectLIst.length<=0){
        this.$message.warning('请选择一条数据')
      }else {
        this.KeydialogVisible=false;
        this.KeySelectLIst=[]
        this.$set(this.loneTreeNewForm,'codekeyattrrepeatoidName',this.KeyName)
        this.$set(this.loneTreeNewForm,'codekeyattrrepeatoid',this.KeyOid)
        this.$emit('MasterHandler',this.loneTreeNewForm)
      }
    },
    //关键属性查询
    KeySelectFindeHandler(){
      if(this.SelectValue == 'id'){
        const masterParameter={
          'conditionMap[id]':this.SelectFInd
        }
        this.KeydefaultRend(masterParameter);
        this.SelectValue=""
        this.SelectFInd=""
      }else if(this.SelectValue == 'name'){
        const masterParameter={
          'conditionMap[name]':this.SelectFInd
        }
        this.KeydefaultRend(masterParameter)
        this.SelectValue=""
        this.SelectFInd=""
      }
    },
    //关键属性接口
    KeydefaultRend(){
      defaultReferDataGrid({
        referType:'codekeyattrrepeat',
        isMuti:'false',
        'conditionMap["lcstatus"]':'Enabled'
      }).then(res=>{
        this.KeyData=res.data.records;
      })
    },
    //关键多选
    KeySelect(row){
      this.KeySelectLIst=row;
      this.KeyName=row[0].name;
      this.KeyOid=row[0].oid;
    },
    //相似项失焦
    simFouce(){
      this.SimidialogVisible=true;
      this.simdefaultRend()
    },
    //相似项确定
    simHandlerClick(){
      if(this.simSelectList.length>1){
        this.$message.warning('只能选择一条数据')
      }else if(this.simSelectList.length<=0){
        this.$message.warning('请选择一条数据')
      }else {
        this.SimidialogVisible=false;
        this.simSelectList=[]
        this.$set(this.loneTreeNewForm,'codeResembleRuleOidName',this.simName)
        this.$set(this.loneTreeNewForm,'codeResembleRuleOid',this.simOid)
        this.$emit('MasterHandler',this.loneTreeNewForm)
      }
    },
    //相似项查询
    SimSelectFindeHandler(){
      if(this.SelectValue == 'id'){
        const masterParameter={
          'conditionMap[id]':this.SelectFInd
        }
        this.simdefaultRend(masterParameter);
        this.SelectValue=""
        this.SelectFInd=""
      }else if(this.SelectValue == 'name'){
        const masterParameter={
          'conditionMap[name]':this.SelectFInd
        }
        this.simdefaultRend(masterParameter)
        this.SelectValue=""
        this.SelectFInd=""
      }
    },
    //相似项多选
    simSelect(row){
      this.simSelectList=row;
      this.simName=row[0].name;
      this.simOid=row[0].oid;
    },
    //相似项项接口
    simdefaultRend(){
      defaultReferDataGrid({
        referType:'coderesemblerule',
        isMuti:'false',
        'conditionMap["lcstatus"]':'Enabled'
      }).then(res=>{
        this.simData=res.data.records;
      })
    },
    //业务类型失焦
    btmFoucus(){
      this.BtmdialogVisible=true;
      this.btmdefaultRend()
    },
    //业务类型确定
    btmHandlerClick(){
      if(this.btmSelectList.length>1){
        this.$message.warning('只能选择一条数据')
      }else if(this.btmSelectList.length<=0){
        this.$message.warning('请选择一条数据')
      }else {
        this.BtmdialogVisible=false;
        this.btmSelectList=[]
        this.$set(this.loneTreeNewForm,'btmTypeName',this.btmName ||this.btmOid)
        this.$set(this.loneTreeNewForm,'btmTypeId',this.btmId)
        this.$emit('MasterHandler',this.loneTreeNewForm)
      }
    },
    //业务类型查询
    BtmSelectFindeHandler(){
      if(this.SelectValue == 'id'){
        const masterParameter={
          'conditionMap[id]':this.SelectFInd
        }
        this.btmdefaultRend(masterParameter);
        this.SelectValue=""
        this.SelectFInd=""
      }else if(this.SelectValue == 'name'){
        const masterParameter={
          'conditionMap[name]':this.SelectFInd
        }
        this.btmdefaultRend(masterParameter)
        this.SelectValue=""
        this.SelectFInd=""
      }
    },
    //业务类型多选
    btmSelect(row){
      this.btmSelectList=row;
      this.btmName=row[0].name;
      this.btmOid=row[0].oid;
      this.btmId=row[0].id;
    },
    //业务类型接口
    btmdefaultRend(masterParameter){
      referDataGrid({valueField:'id',isMuti:'false',...masterParameter}).then(res=>{
        this.BtmData=res.data.data.records
      })
    }
  }
}