From 28f1104e32c40273778eed24392bbf14ce03e7fe Mon Sep 17 00:00:00 2001 From: Houjie <714924425@qq.com> Date: 星期六, 16 八月 2025 09:34:43 +0800 Subject: [PATCH] 安灯模块,相关功能表单页面样式调整 --- src/views/andon/modules/AndonResponseConfigForm.vue | 340 +++++++++++++++++++++++++++++++++----------------------- 1 files changed, 202 insertions(+), 138 deletions(-) diff --git a/src/views/andon/modules/AndonResponseConfigForm.vue b/src/views/andon/modules/AndonResponseConfigForm.vue index 131a263..e9cbdc2 100644 --- a/src/views/andon/modules/AndonResponseConfigForm.vue +++ b/src/views/andon/modules/AndonResponseConfigForm.vue @@ -1,49 +1,73 @@ <template> <a-spin :spinning="confirmLoading"> - <j-form-container :disabled="formDisabled"> + <j-form-container :disabled="formDisabled" class="andon-response-form"> <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> - <a-row> - <a-col :span="24"> + + <a-row :gutter="24"> + <a-col :span="12"> <a-form-model-item label="浜х嚎" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="factoryId"> - <a-row :gutter="24"> - <a-col :span="24"> - <a-form-item - :labelCol="labelCol" - :wrapperCol="wrapperCol" - label="" - > - <j-select-factory - :disabled="disabled" - v-model="model.factoryId" - :multi="true" - @back="backFactoryInfo" - :backProduction="true" - :treeProductOpera="true" - ></j-select-factory> - </a-form-item> - </a-col> - </a-row> + <j-select-factory + :disabled="disabled" + v-model="model.factoryId" + :multi="true" + @back="backFactoryInfo" + :backProduction="true" + :treeProductOpera="true" + ></j-select-factory> </a-form-model-item> </a-col> + </a-row> + + + <a-row :gutter="24"> <a-col :span="12"> <a-form-model-item label="瀹夌伅绫诲瀷" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="buttonId"> - <j-search-select-tag v-model="model.buttonId" placeholder="璇疯緭鍏ュ畨鐏被鍨�" - dict="andon_button_config,button_name,id"></j-search-select-tag> + <j-search-select-tag + v-model="model.buttonId" + placeholder="璇烽�夋嫨" + dict="andon_button_config,button_name,id" + ></j-search-select-tag> </a-form-model-item> </a-col> <a-col :span="12"> <a-form-model-item label="鍒濆鍝嶅簲浜�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="firsterResponder"> - <j-select-user-by-dep :multi="false" v-model="model.firsterResponder" placeholder="璇疯緭鍏ュ垵濮嬪搷搴斾汉" ></j-select-user-by-dep> + <j-select-user-by-dep + :multi="false" + v-model="model.firsterResponder" + placeholder="璇烽�夋嫨" + ></j-select-user-by-dep> + </a-form-model-item> + </a-col> + </a-row> + + <!-- 浜岀骇鍝嶅簲浜� + 涓夌骇鍝嶅簲浜� --> + <a-row :gutter="24"> + <a-col :span="12"> + <a-form-model-item + label="浜岀骇鍝嶅簲浜�" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + prop="secondResponder" + > + <j-select-user-by-dep + :multi="false" + v-model="model.secondResponder" + placeholder="璇烽�夋嫨" + ></j-select-user-by-dep> </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="浜岀骇鍝嶅簲浜�(鍗囩骇涓�娆�)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="secondResponder"> - <j-select-user-by-dep :multi="false" v-model="model.secondResponder" placeholder="璇疯緭鍏ヤ簩绾у搷搴斾汉(鍗囩骇涓�娆�)" ></j-select-user-by-dep> - </a-form-model-item> - </a-col> - <a-col :span="12"> - <a-form-model-item label="涓夌骇鍝嶅簲浜�(鍗囩骇涓ゆ)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="thirdResponder"> - <j-select-user-by-dep :multi="false" v-model="model.thirdResponder" placeholder="璇疯緭鍏ヤ笁绾у搷搴斾汉(鍗囩骇涓ゆ)" ></j-select-user-by-dep> + <a-form-model-item + label="涓夌骇鍝嶅簲浜�" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + prop="thirdResponder" + > + <j-select-user-by-dep + :multi="false" + v-model="model.thirdResponder" + placeholder="璇烽�夋嫨" + ></j-select-user-by-dep> </a-form-model-item> </a-col> </a-row> @@ -53,113 +77,153 @@ </template> <script> +import { httpAction } from '@/api/manage' +import JSelectFactory from '@comp/jeecgbiz/JSelectFactory.vue' - import { httpAction, getAction } from '@/api/manage' - import { validateDuplicateValue } from '@/utils/util' - import JSelectFactory from '@comp/jeecgbiz/JSelectFactory.vue' - export default { - name: 'AndonResponseConfigForm', - components: { - JSelectFactory - }, - props: { - //琛ㄥ崟绂佺敤 - disabled: { - type: Boolean, - default: false, - required: false - } - }, - data () { - return { - model:{ - }, - labelCol: { - xs: { span: 24 }, - sm: { span: 5 }, - }, - wrapperCol: { - xs: { span: 24 }, - sm: { span: 16 }, - }, - confirmLoading: false, - validatorRules: { - factoryId: [ - { required: true, message: '浜х嚎鏄繀閫夐」', trigger: 'change' } - ], - buttonId: [ - { required: true, message: '瀹夌伅绫诲瀷鏄繀閫夐」', trigger: 'change' } - ], - firsterResponder: [ - { required: true, message: '鍒濆鍝嶅簲浜烘槸蹇呴�夐」', trigger: 'change' } - ], - secondResponder: [ - { required: true, message: '浜岀骇鍝嶅簲浜烘槸蹇呴�夐」', trigger: 'change' } - ], - thirdResponder: [ - { required: true, message: '涓夌骇鍝嶅簲浜烘槸蹇呴�夐」', trigger: 'change' } - ], - }, - url: { - add: "/andonresponseconfig/andonResponseConfig/add", - edit: "/andonresponseconfig/andonResponseConfig/edit", - queryById: "/andonresponseconfig/andonResponseConfig/queryById" - } - } - }, - computed: { - formDisabled(){ - return this.disabled - }, - }, - created () { - //澶囦唤model鍘熷鍊� - this.modelDefault = JSON.parse(JSON.stringify(this.model)); - }, - methods: { - backFactoryInfo(info) { - this.model.factoryIds = this.model.factoryId - this.nextFactoryOptions = info.map((item, index, arr) => { - let c = { label: item.text, value: item.value + '' } - return c - }) - }, - add () { - this.edit(this.modelDefault); - }, - edit (record) { - this.model = Object.assign({}, record); - this.visible = true; - }, - submitForm () { - const that = this; - // 瑙﹀彂琛ㄥ崟楠岃瘉 - this.$refs.form.validate(valid => { - if (valid) { - that.confirmLoading = true; - let httpurl = ''; - let method = ''; - if(!this.model.id){ - httpurl+=this.url.add; - method = 'post'; - }else{ - httpurl+=this.url.edit; - method = 'put'; - } - httpAction(httpurl,this.model,method).then((res)=>{ - if(res.success){ - that.$message.success(res.message); - that.$emit('ok'); - }else{ - that.$message.warning(res.message); - } - }).finally(() => { - that.confirmLoading = false; - }) - } - - }) - }, +export default { + name: 'AndonResponseConfigForm', + components: { + JSelectFactory + }, + props: { + disabled: { + type: Boolean, + default: false, + required: false } + }, + data () { + return { + model: {}, + // 缁熶竴鏍囩鍒楀搴︼紙浜х嚎銆佸畨鐏被鍨嬬瓑鍏辩敤锛� + labelCol: { + xs: { span: 24 }, + sm: { span: 6 }, + }, + // 缁熶竴杈撳叆妗嗗垪瀹藉害 + wrapperCol: { + xs: { span: 24 }, + sm: { span: 18 }, + }, + confirmLoading: false, + validatorRules: { + factoryId: [ + { required: true, message: '浜х嚎鏄繀閫夐」', trigger: 'change' } + ], + buttonId: [ + { required: true, message: '瀹夌伅绫诲瀷鏄繀閫夐」', trigger: 'change' } + ], + firsterResponder: [ + { required: true, message: '鍒濆鍝嶅簲浜烘槸蹇呴�夐」', trigger: 'change' } + ], + secondResponder: [ + { required: true, message: '浜岀骇鍝嶅簲浜烘槸蹇呴�夐」', trigger: 'change' } + ], + thirdResponder: [ + { required: true, message: '涓夌骇鍝嶅簲浜烘槸蹇呴�夐」', trigger: 'change' } + ], + }, + url: { + add: "/andonresponseconfig/andonResponseConfig/add", + edit: "/andonresponseconfig/andonResponseConfig/edit", + queryById: "/andonresponseconfig/andonResponseConfig/queryById" + } + } + }, + computed: { + formDisabled(){ + return this.disabled + }, + }, + created () { + this.modelDefault = JSON.parse(JSON.stringify(this.model)); + }, + methods: { + backFactoryInfo(info) { + this.model.factoryIds = this.model.factoryId + this.nextFactoryOptions = info.map((item, index, arr) => { + let c = { label: item.text, value: item.value + '' } + return c + }) + }, + add () { + this.edit(this.modelDefault); + }, + edit (record) { + this.model = Object.assign({}, record); + this.visible = true; + }, + submitForm () { + const that = this; + this.$refs.form.validate(valid => { + if (valid) { + that.confirmLoading = true; + let httpurl = ''; + let method = ''; + if(!this.model.id){ + httpurl+=this.url.add; + method = 'post'; + }else{ + httpurl+=this.url.edit; + method = 'put'; + } + httpAction(httpurl,this.model,method).then((res)=>{ + if(res.success){ + that.$message.success(res.message); + that.$emit('ok'); + }else{ + that.$message.warning(res.message); + } + }).finally(() => { + that.confirmLoading = false; + }) + } + }) + }, } -</script> \ No newline at end of file +} +</script> + +<style scoped> +.andon-response-form { + padding: 24px; + background-color: #fff; + border-radius: 8px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); +} +.a-form-model-item { + margin-bottom: 20px !important; +} +.a-form-model-item-label { + margin-right: 16px !important; +} +.a-input::placeholder, +.a-select-selection-placeholder { + color: #ccc; + font-style: italic; +} +.a-form-model-item-label > span:first-child { + color: #f5222d; + margin-right: 4px; +} +.a-form-footer { + text-align: right; + margin-top: 36px; +} +.a-button-primary { + background-color: #1890ff; + border-color: #1890ff; + transition: all 0.3s ease; +} +.a-button-primary:hover { + background-color: #40a9ff; + border-color: #40a9ff; +} +.a-button-default { + border-color: #d9d9d9; + transition: all 0.3s ease; +} +.a-button-default:hover { + border-color: #bfbfbf; +} +</style> \ No newline at end of file -- Gitblit v1.9.3