前端最终规范


数据字典2

<pre><code class="language-markdown"> &lt;template&gt; &lt;div class="SelectDataCode"&gt; &lt;div v-if="readOnly"&gt; {{ labelName }} &lt;/div&gt; &lt;el-select v-model="value" v-else v-bind="$attrs" v-on="$listeners"&gt; &lt;el-option v-for="item in options" :key="item[defaultProps.value]" :label="item[defaultProps.label]" :value="item[defaultProps.value]" &gt;&lt;/el-option&gt; &lt;/el-select&gt; &lt;/div&gt; &lt;/template&gt; &lt;script&gt; export default { name: 'SelectDataCode', data() { return { value: '', } }, props: { readOnly: { //用于只读显示 type: Boolean, default: false, }, dataCode: { type: String, required: true, }, dataCodeValue: { type: Number | String, required: true, }, defaultProps: { type: Object, default: () =&gt; { return { label: 'name', value: 'code', } }, }, }, computed: { options() { let dataCodes = this.$store.getters['dataCode/dataCodes'] return dataCodes[this.dataCode] || []; }, labelName() { if (this.readOnly &amp;&amp; this.value &amp;&amp; this.options) { if (this.$attrs.hasOwnProperty('multiple')) { //多选 let arr = this.value.split(',') return arr .map((item) =&gt; { return this.findOne(item) }) .join(';') } else { return this.findOne(this.value) } } else { return '' } }, }, watch: { dataCodeValue: { handler: function (oldval, newval) { this.value = this.dataCodeValue }, immediate: true, }, value: { handler: function (oldval, newval) { this.$emit('update:dataCodeValue', this.value) }, }, }, methods: { findOne(value) { return this.options.find((item) =&gt; { return item[this.defaultProps.value] === value })[this.defaultProps.label] }, clearValue() { this.$emit('update:dataCodeValue', '') }, }, } &lt;/script&gt; &lt;style scoped&gt;&lt;/style&gt; </code></pre>

页面列表

ITEM_HTML