|
@@ -0,0 +1,584 @@
|
|
|
+<template>
|
|
|
+ <div class="wrapper">
|
|
|
+ <crumbs
|
|
|
+ :title="isEdit ? '知识图谱标准术语维护-修改' : '知识图谱标准术语维护-添加'"
|
|
|
+ class="topBack"
|
|
|
+ :param="$route.params"
|
|
|
+ linkTo="KnowledgeManage"
|
|
|
+ ></crumbs>
|
|
|
+ <div class="AddPlanBox">
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="16">
|
|
|
+ <el-form ref="form" :model="form" label-width="110px" :rules="rules">
|
|
|
+ <el-form-item label="术语分类" class="selectMedicine" prop="labelType">
|
|
|
+ <el-select
|
|
|
+ v-model="form.labelType"
|
|
|
+ placeholder="请选择术语分类"
|
|
|
+ clearable
|
|
|
+ filterable
|
|
|
+ style="width: 100%"
|
|
|
+ :disabled="isEdit"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in terminologyData"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.val"
|
|
|
+ :key="item.orderNo"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="术语名称" prop="name">
|
|
|
+ <el-input
|
|
|
+ v-model.trim="form.name"
|
|
|
+ placeholder="请输入术语名称"
|
|
|
+ @blur="handlePinyin($event)"
|
|
|
+ @input="handlePinyinInput"
|
|
|
+ :disabled="form.labelType===''"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="术语拼音" prop="pycode">
|
|
|
+ <el-input
|
|
|
+ v-model.trim="form.pycode"
|
|
|
+ placeholder="请输入术语拼音"
|
|
|
+ ref="pycode"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <!-- 诊断 -->
|
|
|
+ <DiseaseForm v-if="form.labelType==='医保疾病名称'" :data="form" @handleInput="handleInput"></DiseaseForm>
|
|
|
+ <!-- 手术和操作 -->
|
|
|
+ <OperationForm
|
|
|
+ v-else-if="form.labelType==='医保手术和操作名称'"
|
|
|
+ ref="operationForm"
|
|
|
+ :data="form"
|
|
|
+ @handleInput="handleInput"
|
|
|
+ ></OperationForm>
|
|
|
+ <!-- 检查 | 检查子项 -->
|
|
|
+ <PacsForm
|
|
|
+ v-else-if="form.labelType==='辅助检查名称' || form.labelType === '辅助检查子项目名称'"
|
|
|
+ :key="form.labelType"
|
|
|
+ :data="form"
|
|
|
+ @handleInput="handleInput"
|
|
|
+ ></PacsForm>
|
|
|
+ <!-- 检验细项 -->
|
|
|
+ <PacsDetailForm
|
|
|
+ v-else-if="form.labelType==='实验室检查名称' "
|
|
|
+ :data="form"
|
|
|
+ @handleInput="handleInput"
|
|
|
+ ></PacsDetailForm>
|
|
|
+ <!-- 实验室检查细项(开单合理性) -->
|
|
|
+ <LabPacsForm
|
|
|
+ v-else-if="form.labelType==='实验室检查' "
|
|
|
+ :data="form"
|
|
|
+ @handleInput="handleInput"
|
|
|
+ ></LabPacsForm>
|
|
|
+ <!-- 化验细项及结果(推理)-->
|
|
|
+ <AssayForm
|
|
|
+ v-else-if="form.labelType==='化验细项及结果' "
|
|
|
+ ref="assayForm"
|
|
|
+ :data="form"
|
|
|
+ @handleInput="handleInput"
|
|
|
+ ></AssayForm>
|
|
|
+ <!-- 药物过敏原-->
|
|
|
+ <DrugAllergensForm
|
|
|
+ v-else-if="form.labelType==='药物过敏原'"
|
|
|
+ ref="drugAllergensForm"
|
|
|
+ :data="form"
|
|
|
+ @handleInput="handleInput"
|
|
|
+ ></DrugAllergensForm>
|
|
|
+ <!-- 药品注册名称-->
|
|
|
+ <DrugRegNameForm
|
|
|
+ v-else-if="form.labelType==='药品注册名称' "
|
|
|
+ :data="form"
|
|
|
+ @handleInput="handleInput"
|
|
|
+ ></DrugRegNameForm>
|
|
|
+ <!-- 药品代码通用名-->
|
|
|
+ <DrugGeneNameForm
|
|
|
+ v-else-if="form.labelType==='药品代码通用名' "
|
|
|
+ ref="drugGeneNameForm"
|
|
|
+ :data="form"
|
|
|
+ @handleInput="handleInput"
|
|
|
+ ></DrugGeneNameForm>
|
|
|
+ <!-- 体征 | 实验室检查危急值-->
|
|
|
+ <CommonForm
|
|
|
+ v-else-if="form.labelType==='实验室检查危急值' || form.labelType === '体征'"
|
|
|
+ :key="form.labelType"
|
|
|
+ :data="form"
|
|
|
+ @handleInput="handleInput"
|
|
|
+ ></CommonForm>
|
|
|
+ <el-form-item label="静态术语标识">
|
|
|
+ <span style="paddingLeft: 12px; color: #606266">{{form.is_kl === 1? '有' : '无'}}</span>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="primary" @click="onSubmit" :disabled="saveDisable">确定</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import api from '@api/cdss.js';
|
|
|
+import pinyin from '../../../js/Convert_Pinyin.js';
|
|
|
+import DiseaseForm from './DiseaseForm';
|
|
|
+import OperationForm from './OperationForm';
|
|
|
+import PacsForm from './PacsForm';
|
|
|
+import PacsDetailForm from './PacsDetailForm';
|
|
|
+import LabPacsForm from './LabPacsForm';
|
|
|
+import AssayForm from './AssayForm';
|
|
|
+import DrugAllergensForm from './DrugAllergensForm';
|
|
|
+import DrugRegNameForm from './DrugRegNameForm';
|
|
|
+import DrugGeneNameForm from './DrugGeneNameForm';
|
|
|
+import CommonForm from './CommonForm';
|
|
|
+export default {
|
|
|
+ components: {
|
|
|
+ DiseaseForm,
|
|
|
+ OperationForm,
|
|
|
+ PacsForm,
|
|
|
+ PacsDetailForm,
|
|
|
+ LabPacsForm,
|
|
|
+ AssayForm,
|
|
|
+ DrugAllergensForm,
|
|
|
+ DrugRegNameForm,
|
|
|
+ DrugGeneNameForm,
|
|
|
+ CommonForm
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ let reg = /[\u4E00-\u9FA5\uF900-\uFA2D]/;
|
|
|
+ let checkFrequency = (rule, value, callback) => {
|
|
|
+ let pycode = this.$refs.pycode.value;
|
|
|
+ if (reg.test(pycode && pycode.trim())) {
|
|
|
+ callback('术语拼音仅支持字母、数字和标点符号');
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ };
|
|
|
+ return {
|
|
|
+ form: {
|
|
|
+ age: '', //年龄
|
|
|
+ alias: '', //别名(医保诊断名称、药物过敏原、药品注册名称)
|
|
|
+ category: '', //诊断分类(医保诊断名称属性:1、2,无默认值)
|
|
|
+ conflict_geiyao: '', //禁忌给药途径(药品注册名称属性)
|
|
|
+ conflict_gender: '', //禁忌性别(药品注册名称属性)
|
|
|
+ dept: '', //诊断所属科室(医保诊断名称属性)
|
|
|
+ gender: '', //性别
|
|
|
+ highriskcond: '', //高危条件(医保手术和操作属性)
|
|
|
+ // id: 0,
|
|
|
+ is_kl: 0, //静态知识标识(0-无,1-有,默认0)
|
|
|
+ labelType: '', //术语类型-知识图谱标签类型(详情见字典)
|
|
|
+ maxAge: '', // 最大值(实验室检查名称)
|
|
|
+ maxval: '', //最小值(实验室检查名称)
|
|
|
+ medtype: '', //药品类型(药物过敏原属性:药品、药品类别)
|
|
|
+ minAge: '', //年龄下限(医保诊断名称属性)
|
|
|
+ minval: '', //年龄上限(医保诊断名称属性)
|
|
|
+ name: '', //术语名称
|
|
|
+ opgrade: '', //手术等级(医保手术和操作属性:0、1、2、3、4,默认0)
|
|
|
+ pycode: '', //拼音编码
|
|
|
+ range: 0, //范围(0-范围内,1-范围外,默认0)
|
|
|
+ result: '', //结果(药物过敏原、药品注册名称)
|
|
|
+ risklevel: '', //药品高危级别(药品注册名称属性)
|
|
|
+ special: '否', //特殊标志(化验细项及结果属性:是)
|
|
|
+ status: 1, //状态(0-禁用,1-启用,默认1)
|
|
|
+ unit: '', //单位(实验室检查名称、实验室检查、体征、实验室检查危急值)
|
|
|
+ min_pack_num: null, //最小包装数量(药品代码通用名属性)
|
|
|
+ reg_JiXin: '', //注册剂型(药品代码通用名属性)
|
|
|
+ benWei_Code: '', //药品本位码(药品代码通用名属性)
|
|
|
+ min_pack_unit: '', //最小包装单位(药品代码通用名属性)
|
|
|
+ reg_GuiGe: '', //注册规格(药品代码通用名属性)
|
|
|
+ pack_CaiLiao: '', //包装材质(药品代码通用名属性)
|
|
|
+ producer: '', //药品企业(药品代码通用名属性)
|
|
|
+ license_num: '', //批准文号(药品代码通用名属性)
|
|
|
+ min_prod_unit: '', //最小制剂单位(药品代码通用名属性)
|
|
|
+ stand_reg_JiXin: '' //标准注册剂型(药品代码通用名属性)
|
|
|
+ },
|
|
|
+ saveDisable: false, //保存按钮禁止点击
|
|
|
+ rules: {
|
|
|
+ labelType: [
|
|
|
+ { required: true, message: '请选择术语分类', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ name: [
|
|
|
+ { required: true, message: '请输入术语名称', trigger: 'change' },
|
|
|
+ { max: 100, message: '最多输入100字', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ pycode: [
|
|
|
+ { required: true, message: '请输入术语拼音', trigger: 'change' },
|
|
|
+ { max: 100, message: '最多输入100个字符', trigger: ['blur', 'change']},
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ validator: checkFrequency,
|
|
|
+ trigger: ['blur', 'change']
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ isEdit: false,
|
|
|
+ terminologyData: [], // 术语分类
|
|
|
+ nameFlag: '', // 判断术语名称是否被修改
|
|
|
+ isValidate: true,
|
|
|
+ id: '',
|
|
|
+ isTrans: true // 拼音是否转换成功
|
|
|
+ };
|
|
|
+ },
|
|
|
+ watch: {},
|
|
|
+ computed: {},
|
|
|
+ created() {
|
|
|
+ this._initData();
|
|
|
+ },
|
|
|
+ mounted() {},
|
|
|
+ methods: {
|
|
|
+ // init
|
|
|
+ _initData() {
|
|
|
+ const { isEdit, data } = this.$route.params;
|
|
|
+ this._getTerminologyData();
|
|
|
+ if (isEdit) {
|
|
|
+ this.isEdit = true;
|
|
|
+ this.id = data.id;
|
|
|
+ this.nameFlag = data.name; //判断术语名称是否被修改
|
|
|
+ this._getEntitymanById(data.id);
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ // 根据ID获取实例
|
|
|
+ _getEntitymanById(id) {
|
|
|
+ api.getEntitymanById({ id }).then(res => {
|
|
|
+ if (res.data.code === '0') {
|
|
|
+ this.form.age = res.data.data.age;
|
|
|
+ this.form.alias = res.data.data.alias;
|
|
|
+ this.form.category = res.data.data.category;
|
|
|
+ this.form.conflict_geiyao = res.data.data.conflict_geiyao;
|
|
|
+ this.form.conflict_gender = res.data.data.conflict_gender;
|
|
|
+ this.form.dept = res.data.data.dept;
|
|
|
+ this.form.gender = res.data.data.gender;
|
|
|
+ this.form.highriskcond = res.data.data.highriskcond;
|
|
|
+ this.form.is_kl = res.data.data.is_kl;
|
|
|
+ this.form.labelType = res.data.data.labelType;
|
|
|
+ this.form.maxAge = res.data.data.maxAge;
|
|
|
+ this.form.maxval = res.data.data.maxval;
|
|
|
+ this.form.medtype = res.data.data.medtype;
|
|
|
+ this.form.minAge = res.data.data.minAge;
|
|
|
+ this.form.minval = res.data.data.minval;
|
|
|
+ this.form.name = res.data.data.name;
|
|
|
+ this.form.opgrade = res.data.data.opgrade;
|
|
|
+ this.form.pycode = res.data.data.pycode;
|
|
|
+ this.form.range = res.data.data.range;
|
|
|
+ this.form.result = res.data.data.result;
|
|
|
+ this.form.risklevel = res.data.data.risklevel;
|
|
|
+ this.form.special = res.data.data.special;
|
|
|
+ this.form.status = res.data.data.status;
|
|
|
+ this.form.unit = res.data.data.unit;
|
|
|
+ this.form.min_pack_num = res.data.data.min_pack_num; //最小包装数量(药品代码通用名属性)
|
|
|
+ this.form.reg_JiXin = res.data.data.reg_JiXin; //注册剂型(药品代码通用名属性)
|
|
|
+ this.form.benWei_Code = res.data.data.benWei_Code; //药品本位码(药品代码通用名属性)
|
|
|
+ this.form.min_pack_unit = res.data.data.min_pack_unit; //最小包装单位(药品代码通用名属性)
|
|
|
+ this.form.reg_GuiGe = res.data.data.reg_GuiGe; //注册规格(药品代码通用名属性)
|
|
|
+ this.form.pack_CaiLiao = res.data.data.pack_CaiLiao; //包装材质(药品代码通用名属性)
|
|
|
+ this.form.producer = res.data.data.producer; //药品企业(药品代码通用名属性)
|
|
|
+ this.form.license_num = res.data.data.license_num; //批准文号(药品代码通用名属性)
|
|
|
+ this.form.min_prod_unit = res.data.data.min_prod_unit; //最小制剂单位(药品代码通用名属性)
|
|
|
+ this.form.stand_reg_JiXin = res.data.data.stand_reg_JiXin; //标准注册剂型(药品代码通用名属性)
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ handleInput(data) {
|
|
|
+ const { type } = data;
|
|
|
+ if (type !== '') {
|
|
|
+ this.form[type] = data.value;
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ // 获取术语分类 字典
|
|
|
+ _getTerminologyData() {
|
|
|
+ api.getListDicCDSS().then(res => {
|
|
|
+ if (res.data.code === '0') {
|
|
|
+ this.terminologyData = res.data.data && res.data.data['8'];
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ // 处理参数
|
|
|
+ _getParams() {
|
|
|
+ const {
|
|
|
+ age,
|
|
|
+ alias,
|
|
|
+ category,
|
|
|
+ conflict_geiyao,
|
|
|
+ conflict_gender,
|
|
|
+ dept,
|
|
|
+ gender,
|
|
|
+ highriskcond,
|
|
|
+ is_kl,
|
|
|
+ labelType,
|
|
|
+ maxAge,
|
|
|
+ maxval,
|
|
|
+ medtype,
|
|
|
+ minAge,
|
|
|
+ minval,
|
|
|
+ name,
|
|
|
+ opgrade,
|
|
|
+ pycode,
|
|
|
+ range,
|
|
|
+ result,
|
|
|
+ risklevel,
|
|
|
+ special,
|
|
|
+ status,
|
|
|
+ unit,
|
|
|
+ min_pack_num, //最小包装数量(药品代码通用名属性)
|
|
|
+ reg_JiXin, //注册剂型(药品代码通用名属性)
|
|
|
+ benWei_Code, //药品本位码(药品代码通用名属性)
|
|
|
+ min_pack_unit, //最小包装单位(药品代码通用名属性)
|
|
|
+ reg_GuiGe, //注册规格(药品代码通用名属性)
|
|
|
+ pack_CaiLiao, //包装材质(药品代码通用名属性)
|
|
|
+ producer, //药品企业(药品代码通用名属性)
|
|
|
+ license_num, //批准文号(药品代码通用名属性)
|
|
|
+ min_prod_unit, //最小制剂单位(药品代码通用名属性)
|
|
|
+ stand_reg_JiXin //标准注册剂型(药品代码通用名属性)
|
|
|
+ } = this.form;
|
|
|
+ let params = {
|
|
|
+ age, //年龄
|
|
|
+ alias, //别名(医保诊断名称、药物过敏原、药品注册名称)
|
|
|
+ category, //诊断分类(医保诊断名称属性:1、2,无默认值)
|
|
|
+ conflict_geiyao, //禁忌给药途径(药品注册名称属性)
|
|
|
+ conflict_gender, //禁忌性别(药品注册名称属性)
|
|
|
+ dept, //诊断所属科室(医保诊断名称属性)
|
|
|
+ gender, //性别
|
|
|
+ highriskcond, //高危条件(医保手术和操作属性)
|
|
|
+ is_kl, //静态知识标识(0-无,1-有,默认0)
|
|
|
+ labelType, //术语类型-知识图谱标签类型(详情见字典)
|
|
|
+ maxAge, // 最大值(实验室检查名称)
|
|
|
+ maxval, //最小值(实验室检查名称)
|
|
|
+ medtype, //药品类型(药物过敏原属性:药品、药品类别)
|
|
|
+ minAge, //年龄下限(医保诊断名称属性)
|
|
|
+ minval, //年龄上限(医保诊断名称属性)
|
|
|
+ name, //术语名称
|
|
|
+ opgrade, //手术等级(医保手术和操作属性:0、1、2、3、4,默认0)
|
|
|
+ pycode, //拼音编码
|
|
|
+ range, //范围(0-范围内,1-范围外,默认0)
|
|
|
+ result, //结果(药物过敏原、药品注册名称)
|
|
|
+ risklevel, //药品高危级别(药品注册名称属性)
|
|
|
+ special, //特殊标志(化验细项及结果属性:是)
|
|
|
+ status: 1, //状态(0-禁用,1-启用,默认1)
|
|
|
+ unit, //单位(实验室检查名称、实验室检查、体征、实验室检查危急值)
|
|
|
+ min_pack_num, //最小包装数量(药品代码通用名属性)
|
|
|
+ reg_JiXin, //注册剂型(药品代码通用名属性)
|
|
|
+ benWei_Code, //药品本位码(药品代码通用名属性)
|
|
|
+ min_pack_unit, //最小包装单位(药品代码通用名属性)
|
|
|
+ reg_GuiGe, //注册规格(药品代码通用名属性)
|
|
|
+ pack_CaiLiao, //包装材质(药品代码通用名属性)
|
|
|
+ producer, //药品企业(药品代码通用名属性)
|
|
|
+ license_num, //批准文号(药品代码通用名属性)
|
|
|
+ min_prod_unit, //最小制剂单位(药品代码通用名属性)
|
|
|
+ stand_reg_JiXin //标准注册剂型(药品代码通用名属性)
|
|
|
+ };
|
|
|
+ if (this.isEdit) {
|
|
|
+ params = { ...params, id: this.id };
|
|
|
+ }
|
|
|
+ return params;
|
|
|
+ },
|
|
|
+ onSubmit() {
|
|
|
+ const { currentPage, isEdit } = this.$route.params;
|
|
|
+ let numberpage = 1;
|
|
|
+ if (isEdit) {
|
|
|
+ numberpage = currentPage;
|
|
|
+ }
|
|
|
+ // if (this.isValidate === false || this.isTrans === false) return; // 术语名称已存在
|
|
|
+ if (this.isValidate === false) return; // 术语名称已存在ss
|
|
|
+ let goOn = true;
|
|
|
+ if (this.form.labelType === '药物过敏原') {
|
|
|
+ this.$refs.drugAllergensForm.$refs.drugAllergensForm &&
|
|
|
+ this.$refs.drugAllergensForm.$refs.drugAllergensForm.validate(
|
|
|
+ valid => {
|
|
|
+ if (valid) {
|
|
|
+ } else {
|
|
|
+ goOn = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ );
|
|
|
+ }
|
|
|
+ if (this.form.labelType === '医保手术和操作名称') {
|
|
|
+ this.$refs.operationForm.$refs.operationForm &&
|
|
|
+ this.$refs.operationForm.$refs.operationForm.validate(valid => {
|
|
|
+ if (valid) {
|
|
|
+ } else {
|
|
|
+ goOn = false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // if (this.form.labelType === '化验细项及结果') {
|
|
|
+ // this.$refs.assayForm.$refs.assayForm &&
|
|
|
+ // this.$refs.assayForm.$refs.assayForm.validate(valid => {
|
|
|
+ // if (valid) {
|
|
|
+ // } else {
|
|
|
+ // goOn = false;
|
|
|
+ // }
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+ if (this.form.labelType === '药品代码通用名') {
|
|
|
+ this.$refs.drugGeneNameForm.$refs.drugGeneNameForm &&
|
|
|
+ this.$refs.drugGeneNameForm.$refs.drugGeneNameForm.validate(valid => {
|
|
|
+ if (valid) {
|
|
|
+ } else {
|
|
|
+ goOn = false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ this.$refs.form.validate(async valid => {
|
|
|
+ if (valid) {
|
|
|
+ if (!goOn) return;
|
|
|
+ this.saveDisable = true;
|
|
|
+ let params = this._getParams();
|
|
|
+ if (this.isTrans === false) {
|
|
|
+ this.saveDisable = false;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ let res = await api.dataEntityVerify(params);
|
|
|
+ if (!res.data.data) {
|
|
|
+ this.$alert(`${res.data.msg}`, '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ type: 'warning'
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ api.saveEntity(params).then(res => {
|
|
|
+ if (res.data.code === '0') {
|
|
|
+ this.$message({
|
|
|
+ showClose: true,
|
|
|
+ message: '保存成功',
|
|
|
+ type: 'success',
|
|
|
+ duration: 1000
|
|
|
+ });
|
|
|
+ this.$router.push({
|
|
|
+ name: 'KnowledgeManage',
|
|
|
+ params: Object.assign({}, this.$route.params, {
|
|
|
+ currentPage: numberpage
|
|
|
+ })
|
|
|
+ });
|
|
|
+ } else if (res.data.code === '00020007') {
|
|
|
+ this.$message({
|
|
|
+ showClose: true,
|
|
|
+ message: res.data.msg,
|
|
|
+ type: 'error',
|
|
|
+ duration: 1000
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ showClose: true,
|
|
|
+ message: res.data.msg,
|
|
|
+ type: 'error',
|
|
|
+ duration: 1000
|
|
|
+ });
|
|
|
+ }
|
|
|
+ this.saveDisable = false;
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.saveDisable = false;
|
|
|
+ this.$message({
|
|
|
+ showClose: true,
|
|
|
+ message: '保存失败',
|
|
|
+ type: 'error',
|
|
|
+ duration: 1000
|
|
|
+ });
|
|
|
+ });
|
|
|
+ } else if (res.data.data) {
|
|
|
+ api.saveEntity(params).then(res => {
|
|
|
+ if (res.data.code === '0') {
|
|
|
+ this.$message({
|
|
|
+ showClose: true,
|
|
|
+ message: '保存成功',
|
|
|
+ type: 'success',
|
|
|
+ duration: 1000
|
|
|
+ });
|
|
|
+ this.$router.push({
|
|
|
+ name: 'KnowledgeManage',
|
|
|
+ params: Object.assign({}, this.$route.params, {
|
|
|
+ currentPage: numberpage
|
|
|
+ })
|
|
|
+ });
|
|
|
+ } else if (res.data.code === '00020007') {
|
|
|
+ this.$message({
|
|
|
+ showClose: true,
|
|
|
+ message: res.data.msg,
|
|
|
+ type: 'error',
|
|
|
+ duration: 1000
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ showClose: true,
|
|
|
+ message: res.data.msg,
|
|
|
+ type: 'error',
|
|
|
+ duration: 1000
|
|
|
+ });
|
|
|
+ }
|
|
|
+ this.saveDisable = false;
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ goOn = false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ handlePinyinInput(val) {
|
|
|
+ this.isTrans = false;
|
|
|
+ },
|
|
|
+
|
|
|
+ // 处理拼音转换&验证唯一性
|
|
|
+ handlePinyin(e) {
|
|
|
+ if (this.nameFlag === e.target.value) {
|
|
|
+ this.isTrans = true;
|
|
|
+ this.isValidate = true; // 校验通过
|
|
|
+ this.form.pycode = pinyin.getCamelChars(e.target.value);
|
|
|
+ } else {
|
|
|
+ const { is_kl, name, labelType } = this.form;
|
|
|
+ let params = {
|
|
|
+ is_kl,
|
|
|
+ labelType,
|
|
|
+ name,
|
|
|
+ status: 0
|
|
|
+ };
|
|
|
+ api.isEntitymanExistCDSS(params).then(res => {
|
|
|
+ if (res.data.code === '0') {
|
|
|
+ // console.log(res.data.data, 'res.data.data');
|
|
|
+ if (res.data.data === true) {
|
|
|
+ this.isValidate = false; // 校验不通过
|
|
|
+ // 已存在
|
|
|
+ this.$refs.form.clearValidate();
|
|
|
+ // 手动操作校验、展示登录错误信息
|
|
|
+ this.rules.name.push({
|
|
|
+ // js新增一个自定义校验
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
+ callback('术语名称已存在');
|
|
|
+ },
|
|
|
+ trigger: 'blur'
|
|
|
+ });
|
|
|
+ this.$refs.form.validateField('name'); // 手动校验
|
|
|
+ this.rules.name = this.rules.name.slice(0, 1); // 删除校验
|
|
|
+ } else {
|
|
|
+ this.isValidate = true; // 校验通过
|
|
|
+ this.isTrans = true;
|
|
|
+ // 不存在
|
|
|
+ this.form.pycode = pinyin.getCamelChars(e.target.value);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+};
|
|
|
+</script>
|
|
|
+<style lang="less" scoped>
|
|
|
+.wrapper {
|
|
|
+ min-width: 940px;
|
|
|
+ .AddPlanBox {
|
|
|
+ padding: 20px 60px 120px 60px;
|
|
|
+ margin: 70px 20px 0 20px;
|
|
|
+ background: #fff;
|
|
|
+ }
|
|
|
+ .topBack {
|
|
|
+ top: 0;
|
|
|
+ }
|
|
|
+ .el-button {
|
|
|
+ float: right;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|