Browse Source

feat:[资源库管理][字典选择器]存储条件选择器

luojie
HanLong 3 weeks ago
parent
commit
73af9201b9
5 changed files with 133 additions and 14 deletions
  1. +1
    -0
      src/lang/en.js
  2. +1
    -0
      src/lang/zh.js
  3. +98
    -0
      src/views/business/comps/select/SelectCctj.vue
  4. +22
    -10
      src/views/business/resource/yq/comps/detail.vue
  5. +11
    -4
      src/views/business/resource/yq/list.vue

+ 1
- 0
src/lang/en.js View File

@ -31,6 +31,7 @@ export default {
confirm: 'confirm',
cancel: 'cancel',
operate: 'operate',
detail: 'detail',
placeholderInput: 'Please Enter',
placeholderSelect: 'Please Select',
confirmDelete: 'confirm delete?',

+ 1
- 0
src/lang/zh.js View File

@ -31,6 +31,7 @@ export default {
confirm: '确认',
cancel: '取消',
operate: '操作',
detail: '详情',
placeholderInput: '请输入',
placeholderSelect: '请选择',
confirmDelete: '确认删除?',

+ 98
- 0
src/views/business/comps/select/SelectCctj.vue View File

@ -0,0 +1,98 @@
<!-- 存储条件/温层选择器 -->
<template>
<div>
<el-select style="width:100%" v-model="selected" :placeholder="$t('form.placeholderSelect')" :disabled="readonly" :multiple="multiple" @change="handleChange" :filterable="filterable">
<el-option v-for="item in list" :key="item.dictCode" :label="item.dictLabel" :value="item.dictLabel" />
</el-select>
</div>
</template>
<script>
import { listData } from "@/api/system/dict/data"
export default {
name: "SelectCctj",
components: {},
props: {
value: {
type: [Number, String , Array],
default: '',
},
readonly: {
type: Boolean,
default: false
},
multiple: {
type: Boolean,
default: false
},
filterable: {
type: Boolean,
default: true
},
placeholder: {
type: String,
default: ''
}
},
watch: {
value: {
immediate: true,
handler(v) {
if(!this.multiple){
this.selected = v ? v : ''
}else{
if(v){
//,
let arr = v.split(',')
let s = []
_.forEach(arr,a=>{
s.push(a)
})
this.selected = s
}else{
this.selected = []
}
}
}
},
},
data() {
return {
selected: '',
list: [],
queryParams: {
pageNum: 1,
pageSize: 9999,
dictType: 'system_business_cctj',
status: 0
},
};
},
mounted() {
this.getList()
},
methods: {
getList() {
this.list = []
listData(this.queryParams).then(response => {
this.list = response.rows
})
},
handleChange(val) {
this.$emit('change', this.multiple ? (val && val.length>0 ? val.join(','): ''):(val || ''))
//,
let _index = _.findIndex(this.list, function (a) {
return a.dictLabel == val
})
console.log(_index)
if (_index > -1) {
this.$emit('change', this.list[_index])
} else {
this.$emit('change', null)
}
},
}
};
</script>

+ 22
- 10
src/views/business/resource/yq/comps/detail.vue View File

@ -3,28 +3,28 @@
<!-- 仪器详情弹窗 -->
<el-dialog :title="$t('form.detail')" :visible.sync="open" width="800px" append-to-body
:close-on-click-modal="false">
<el-form ref="form" :model="form" label-width="130px">
<el-form ref="form" :model="form" label-width="130px">
<el-row>
<el-col :span="12">
<el-form-item :label="$t('page.business.zykgl.yq.yqmc')" prop="mc">
<el-input v-model="form.mc" disabled :placeholder="$t('form.placeholderInput')" maxlength="50"/>
<el-input v-model="form.mc" disabled :placeholder="$t('form.placeholderInput')" maxlength="50" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('page.business.zykgl.yq.yqbh')" prop="bh">
<el-input v-model="form.bh" disabled :placeholder="$t('form.placeholderInput')" maxlength="50"/>
<el-input v-model="form.bh" disabled :placeholder="$t('form.placeholderInput')" maxlength="50" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item :label="$t('page.business.zykgl.yq.yqxh')" prop="xh">
<el-input v-model="form.xh" disabled :placeholder="$t('form.placeholderInput')" maxlength="50"/>
<el-input v-model="form.xh" disabled :placeholder="$t('form.placeholderInput')" maxlength="50" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('page.business.zykgl.yq.yqly')" prop="ly">
<el-input v-model="form.ly" disabled :placeholder="$t('form.placeholderInput')" maxlength="50"/>
<el-input v-model="form.ly" disabled :placeholder="$t('form.placeholderInput')" maxlength="50" />
</el-form-item>
</el-col>
</el-row>
@ -52,7 +52,8 @@
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.remark')" prop="remark">
<el-input v-model="form.remark" type="textarea" :placeholder="$t('form.placeholderInput')" maxlength="500" disabled/>
<el-input v-model="form.remark" type="textarea" :placeholder="$t('form.placeholderInput')" maxlength="500"
disabled />
</el-form-item>
</el-col>
</el-row>
@ -62,7 +63,9 @@
<el-table-column :label="$t('form.qmyy')" align="center" prop="xh" />
<el-table-column :label="$t('form.signTime')" align="center" prop="ly" />
<el-table-column :label="$t('page.business.zykgl.yq.xgnr')" align="center" prop="bmMc" />
</el-table>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<div slot="footer" class="dialog-footer">
<el-button @click="cancel">{{ $t('form.cancel') }}</el-button>
</div>
@ -71,7 +74,7 @@
</template>
<script>
import { yq_info } from '@/api/business/yq/yq'
import { yq_info } from '@/api/business/yq/yq'
export default {
name: "YqDetail",
data() {
@ -80,7 +83,13 @@ export default {
open: false,
form: {},
//
qmList: []
qmList: [],
//
total: 0,
queryParams: {
pageNum: 1,
pageSize: 10,
},
}
},
created() {
@ -90,11 +99,14 @@ export default {
this.open = false
},
show(row) {
yq_info({id: row.id}).then((response) => {
yq_info({ id: row.id }).then((response) => {
this.form = response.data
this.open = true
})
},
getList() {
}
}
}
</script>

+ 11
- 4
src/views/business/resource/yq/list.vue View File

@ -96,7 +96,7 @@
<el-row>
<el-col :span="12">
<el-form-item :label="$t('page.business.zykgl.yq.wc')" prop="wc">
<el-input v-model="form.wc" :placeholder="$t('form.placeholderSelect')" />
<SelectCctj v-model="form.wc"></SelectCctj>
</el-form-item>
</el-col>
</el-row>
@ -115,7 +115,7 @@
</el-col>
<el-col :span="12">
<el-form-item :label="$t('form.signer')" prop="qmrmc">
<el-input v-model="form.qmrmc" :placeholder="$t('form.placeholderInput')" />
<el-input v-model="nickName" disabled :placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
@ -138,11 +138,13 @@
</template>
<script>
import { yq_list, yq_info, delYq, yq_save, updateYq } from '@/api/business/yq/yq'
import { yq_list, yq_info, delYq, yq_save } from '@/api/business/yq/yq'
import YqDetail from './comps/detail'
import SelectCctj from '@/views/business/comps/select/SelectCctj';
import { mapGetters } from 'vuex'
export default {
name: 'Yq',
components: { YqDetail },
components: { YqDetail, SelectCctj },
data() {
return {
@ -216,6 +218,11 @@ export default {
}
}
},
computed: {
...mapGetters([
'nickName'
]),
},
created() {
this.getList()
},

Loading…
Cancel
Save