|
@@ -0,0 +1,386 @@
|
|
|
+<template>
|
|
|
+ <div class="PubTagGroupWrapper">
|
|
|
+ <el-form
|
|
|
+ class="groups"
|
|
|
+ :rules="rules"
|
|
|
+ ref="groups"
|
|
|
+ :model="form"
|
|
|
+ label-width="150px"
|
|
|
+ >
|
|
|
+ <el-form-item
|
|
|
+ label="选择归属:"
|
|
|
+ prop="region1"
|
|
|
+ >
|
|
|
+ <el-select
|
|
|
+ v-model="form.region1"
|
|
|
+ placeholder="请选择归属"
|
|
|
+ @change="sendData"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in Adscriptions"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.val"
|
|
|
+ :key="item.id"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ label="选择填写单类型:"
|
|
|
+ prop="region2"
|
|
|
+ >
|
|
|
+ <el-select
|
|
|
+ v-model="form.region2"
|
|
|
+ placeholder="请选择填写单类型"
|
|
|
+ @change="sendData"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in labelTypes"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.val"
|
|
|
+ :key="item.id"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ label="标签系统名称:"
|
|
|
+ prop="region3"
|
|
|
+ >
|
|
|
+ <el-input
|
|
|
+ v-model="form.region3"
|
|
|
+ maxLength="30"
|
|
|
+ placeholder="请输入标签系统名称"
|
|
|
+ @change="sendData"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ label="标签界面名称:"
|
|
|
+ prop="region4"
|
|
|
+ >
|
|
|
+ <el-input
|
|
|
+ v-model="form.region4"
|
|
|
+ maxLength="30"
|
|
|
+ placeholder="请输入标签界面名称"
|
|
|
+ @change="sendData"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ label="选择项之间链接:"
|
|
|
+ prop="region5"
|
|
|
+ >
|
|
|
+ <el-input
|
|
|
+ v-model="form.region5"
|
|
|
+ maxLength="30"
|
|
|
+ placeholder="请输入选择项之间链接"
|
|
|
+ @change="sendData"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ label="能否当项目检索:"
|
|
|
+ prop="region6"
|
|
|
+ >
|
|
|
+ <el-select
|
|
|
+ v-model="form.region6"
|
|
|
+ @change="sendData"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ label="不可以"
|
|
|
+ value="不可以"
|
|
|
+ ></el-option>
|
|
|
+ <el-option
|
|
|
+ label="可以"
|
|
|
+ value="可以"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ label="性别:"
|
|
|
+ prop="region7"
|
|
|
+ >
|
|
|
+ <el-select
|
|
|
+ v-model="form.region7"
|
|
|
+ @change="readyChangeSex"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ label="通用"
|
|
|
+ value="通用"
|
|
|
+ ></el-option>
|
|
|
+ <el-option
|
|
|
+ label="男"
|
|
|
+ value="男"
|
|
|
+ ></el-option>
|
|
|
+ <el-option
|
|
|
+ label="女"
|
|
|
+ value="女"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ label="年龄:"
|
|
|
+ prop="region8"
|
|
|
+ class="ages"
|
|
|
+ >
|
|
|
+ <el-input
|
|
|
+ v-model.number="form.region8"
|
|
|
+ ref="valage1"
|
|
|
+ @input="sendData"
|
|
|
+ ></el-input> ~
|
|
|
+ <el-input
|
|
|
+ v-model.number="form.region9"
|
|
|
+ ref="valage2"
|
|
|
+ @input="sendData"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <!-- 暂时不用 -->
|
|
|
+ <!-- <el-form-item label="选择子项时是否复制主项标签:" prop="region10">
|
|
|
+ <el-select v-model="form.region10">
|
|
|
+ <el-option label="不可以" value="不可以"></el-option>
|
|
|
+ <el-option label="可以" value="可以"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="是否复制当前模块:" prop="region11">
|
|
|
+ <el-select v-model="form.region11">
|
|
|
+ <el-option label="不可以" value="不可以"></el-option>
|
|
|
+ <el-option label="可以" value="可以"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item> -->
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+import api from '@api/icss.js';
|
|
|
+/**
|
|
|
+ * titlePar 顶部显示左(有默认值可不填)
|
|
|
+ * titleSub 顶部显示右(有默认值可不填)
|
|
|
+ * form 当前页面传到父组件的数据(region10,region11暂时不用)
|
|
|
+ * submitForm 基本信息验证必填项
|
|
|
+ * validatePass 基本信息必填项验证成功回调
|
|
|
+ * 父组件根据form.region2改变底部组件操作项
|
|
|
+ * searchTagList 函数的参数根据type变化
|
|
|
+ */
|
|
|
+
|
|
|
+export default {
|
|
|
+ data() {
|
|
|
+ var validatePass2 = (rule, value, callback) => {
|
|
|
+ this.validateSystomName(value,callback)
|
|
|
+ };
|
|
|
+ return {
|
|
|
+ status2: [
|
|
|
+ { name: '症状标签', key: '8' },
|
|
|
+ { name: '单选自由填写项', key: '9' },
|
|
|
+ { name: '多选项、预设结构选择', key: '10' },
|
|
|
+ { name: '预设结构选择', key: '11' },
|
|
|
+ { name: '伴/无结构类型', key: '12' },
|
|
|
+ { name: '推送症状类型', key: '13' },
|
|
|
+ { name: '诊断/药品/辅检', key: '14' },
|
|
|
+ { name: '血压类型', key: '15' },
|
|
|
+ ],
|
|
|
+ form: {
|
|
|
+ region1: '', //归属
|
|
|
+ region2: '', //填写单类型
|
|
|
+ region3: '', //系统名称
|
|
|
+ region4: '', //界面名称
|
|
|
+ region5: '', //选项之间的链接
|
|
|
+ region6: '不可以', //是否可以检索
|
|
|
+ region7: '通用', //性别
|
|
|
+ region8: '0', //最小年龄
|
|
|
+ region9: '200', //最大年龄
|
|
|
+ // region10: '可以', //是否复制主标签
|
|
|
+ // region11: '不可以', //是否复制当前模块
|
|
|
+ tagPool:[], //标签池数据
|
|
|
+ },
|
|
|
+ rules: {
|
|
|
+ region1: [
|
|
|
+ { required: true, message: '请选择归属', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ region2: [
|
|
|
+ { required: true, message: '请选择填写单类型', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ region3: [
|
|
|
+ { required: true, message: '请输入标签系统名称', trigger: 'change' },
|
|
|
+ { validator: validatePass2, trigger: 'blur' },
|
|
|
+ ],
|
|
|
+ region4: [
|
|
|
+ { required: true, message: '请输入标签界面名称', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ region6: [
|
|
|
+ { required: true, message: '请输入能否当项目检索', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ region7: [
|
|
|
+ { required: true, message: '请选择性别', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ region8: [
|
|
|
+ { required: true, message: '请输入最小年龄', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ region9: [
|
|
|
+ { required: true, message: '请输入最大年龄', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ // region10: [
|
|
|
+ // { required: true, message: '选择子项时是否复制主项标签', trigger: 'change' }
|
|
|
+ // ],
|
|
|
+ // region11: [
|
|
|
+ // { required: true, message: '是否复制当前模块', trigger: 'change' }
|
|
|
+ // ],
|
|
|
+ },
|
|
|
+ tmpSex: '通用',
|
|
|
+ Adscriptions: [],
|
|
|
+ labelTypes: [],
|
|
|
+ labelTypesList: [],
|
|
|
+ tagTypes: [], //标签池数据
|
|
|
+ type:'',
|
|
|
+ systom:null, //标签系统名称存在与否
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ newSex() {
|
|
|
+ return this.form.region7;
|
|
|
+ },
|
|
|
+ newType() {
|
|
|
+ return this.form.region1;
|
|
|
+ },
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ this.$emit('submitForm', 'groups', false);
|
|
|
+ this.getDropList();
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ newSex(nextVal, prevVal) {
|
|
|
+ this.tmpSex = prevVal;
|
|
|
+ },
|
|
|
+ newType(nextVal, prevVal) {
|
|
|
+ if (nextVal != prevVal) {
|
|
|
+ this.searchTagList(nextVal)
|
|
|
+ this.type = nextVal
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ getDropList() {
|
|
|
+ return api.getDropList().then((res) => {
|
|
|
+ if (res.data.code === '0') {
|
|
|
+ this.Adscriptions = res.data.data[1];
|
|
|
+ this.labelTypes = res.data.data[2];
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ searchTagList(type) {
|
|
|
+ let param = {
|
|
|
+ "type": type,
|
|
|
+ "tagType": type == 1?[1]:[],
|
|
|
+ "controlType":type == 1?[1,2]:[],
|
|
|
+ }
|
|
|
+ api.searchTagList(param).then((res) => {
|
|
|
+ if (res.data.code === '0') {
|
|
|
+ this.form.tagPool = res.data.data
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ validateSystomName(name,callback) {
|
|
|
+ if(this.form.region3.trim() == ''){ return }
|
|
|
+ let param = {"existName": this.form.region3,"type": this.type}
|
|
|
+ api.validateSystomName(param).then((res) => {
|
|
|
+ if (res.data.code === '0') {
|
|
|
+ if(res.data.data && res.data.data.length != 0){
|
|
|
+ callback(new Error('该系统名称已存在'));
|
|
|
+ }else{
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ sendData() {
|
|
|
+ this.$emit('changeVal', this.form, false)
|
|
|
+ },
|
|
|
+ changeSex(sex) { //改变性别清空数据
|
|
|
+ this.form = {
|
|
|
+ region1: '',
|
|
|
+ region2: '',
|
|
|
+ region3: '',
|
|
|
+ region4: '',
|
|
|
+ region5: '',
|
|
|
+ region6: '不可以',
|
|
|
+ region7: sex,
|
|
|
+ region8: '0',
|
|
|
+ region9: '200',
|
|
|
+ tagPool:[]
|
|
|
+ }
|
|
|
+ this.$emit('changeVal', this.form, false)
|
|
|
+ },
|
|
|
+ readyChangeSex(data) {
|
|
|
+ let sex = data;
|
|
|
+ this.$confirm('改变性别后,所填信息将会回复到默认状态?', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ cancelButtonClass: 'cancelColor',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ this.changeSex(sex);
|
|
|
+ }).catch(() => {
|
|
|
+ this.form.region7 = this.tmpSex;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ submitForm(formName) {
|
|
|
+ this.$refs[formName].validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ this.$emit('validatePass', this.form, false)
|
|
|
+ } else {
|
|
|
+ console.log('error submit!!');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+<style lang="less">
|
|
|
+.PubTagGroupWrapper {
|
|
|
+
|
|
|
+}
|
|
|
+.groups {
|
|
|
+ background-color: #fff;
|
|
|
+ padding: 20px;
|
|
|
+ margin: 20px 20px -20px 20px;
|
|
|
+ .el-form-item__content,
|
|
|
+ .el-input__inner {
|
|
|
+ height: 30px;
|
|
|
+ line-height: 30px;
|
|
|
+ width: 200px;
|
|
|
+ }
|
|
|
+ .el-form-item {
|
|
|
+ margin-bottom: 20px;
|
|
|
+ }
|
|
|
+ .el-form-item__error {
|
|
|
+ top: 28px;
|
|
|
+ }
|
|
|
+ .el-form-item__label {
|
|
|
+ line-height: 30px;
|
|
|
+ text-align: left;
|
|
|
+ }
|
|
|
+ .el-input__icon {
|
|
|
+ line-height: 30px;
|
|
|
+ }
|
|
|
+ .ages .el-input {
|
|
|
+ display: inline-block;
|
|
|
+ width: auto;
|
|
|
+ .el-input__inner {
|
|
|
+ width: 40px;
|
|
|
+ padding: 0 5px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-input__inner::-webkit-outer-spin-button,
|
|
|
+ .el-input__inner::-webkit-inner-spin-button {
|
|
|
+ -webkit-appearance: none;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-input__inner[type="number"] {
|
|
|
+ -moz-appearance: textfield;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .el-message-box__btns .el-button--default {
|
|
|
+ color: #606266 !important;
|
|
|
+ }
|
|
|
+ .cancelColor {
|
|
|
+ color: #22ccc8 !important;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|
|
|
+
|