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/AndonOrderForm.vue | 307 +++++++++++++++++++++++++-------------------------- 1 files changed, 150 insertions(+), 157 deletions(-) diff --git a/src/views/andon/modules/AndonOrderForm.vue b/src/views/andon/modules/AndonOrderForm.vue index 84fff50..5950cf1 100644 --- a/src/views/andon/modules/AndonOrderForm.vue +++ b/src/views/andon/modules/AndonOrderForm.vue @@ -1,76 +1,58 @@ <template> <a-spin :spinning="confirmLoading"> - <j-form-container :disabled="formDisabled"> + <j-form-container :disabled="formDisabled" class="andon-order-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-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-row> + + <!-- 绗簩琛岋細瀹夌伅浜� + 瀹夌伅鏃堕棿 --> + <a-row :gutter="24"> <a-col :span="12"> <a-form-model-item label="瀹夌伅浜�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operator"> - <j-select-user-by-dep :multi="false" v-model="model.operator" placeholder="璇疯緭鍏ュ畨鐏汉" ></j-select-user-by-dep> + <j-select-user-by-dep :multi="false" v-model="model.operator" 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="operateTime"> - <j-date placeholder="璇烽�夋嫨瀹夌伅鏃堕棿" v-model="model.operateTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" /> + <j-date placeholder="璇烽�夋嫨瀹夌伅鏃堕棿" v-model="model.operateTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" /> </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="andonLevel"> <j-dict-select-tag type="list" v-model="model.andonLevel" dictCode="andon_level" placeholder="璇烽�夋嫨瀹夌伅绛夌骇" /> </a-form-model-item> </a-col> -<!-- <a-col :span="12">--> -<!-- <a-form-model-item label="鍝嶅簲浜�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="responder">--> -<!-- <j-select-user-by-dep v-model="model.responder" 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="responseTime">--> -<!-- <j-date placeholder="璇烽�夋嫨鍝嶅簲鏃堕棿" v-model="model.responseTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />--> -<!-- </a-form-model-item>--> -<!-- </a-col>--> -<!-- <a-col :span="12">--> -<!-- <a-form-model-item label="澶勭悊浜�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processor">--> -<!-- <j-select-user-by-dep v-model="model.processor" 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="processTime">--> -<!-- <j-date placeholder="璇烽�夋嫨澶勭悊瀹屾垚鏃堕棿" v-model="model.processTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />--> -<!-- </a-form-model-item>--> -<!-- </a-col>--> <a-col :span="12"> <a-form-model-item label="瀹夌伅鐘舵��" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderStatus"> <j-dict-select-tag type="list" v-model="model.orderStatus" dictCode="order_status" placeholder="璇烽�夋嫨瀹夌伅鐘舵��" /> </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="problemDescreption"> <a-textarea v-model="model.problemDescreption" rows="4" placeholder="璇疯緭鍏ラ棶棰樻弿杩�" /> @@ -81,9 +63,13 @@ <a-textarea v-model="model.resolutionDescreption" rows="4" placeholder="璇疯緭鍏ュ鐞嗙粨鏋滄弿杩�" /> </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="imageFiles"> - <j-image-upload isMultiple v-model="model.imageFiles" ></j-image-upload> + <j-image-upload isMultiple v-model="model.imageFiles"></j-image-upload> </a-form-model-item> </a-col> </a-row> @@ -93,117 +79,124 @@ </template> <script> +import { httpAction, getAction } from '@/api/manage' +import { validateDuplicateValue } from '@/utils/util' +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: 'AndonOrderForm', - 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' } - ], - operator: [ - { required: true, message: '瀹夌伅浜烘槸蹇呴�夐」', trigger: 'change' } - ], - operateTime: [ - { required: true, message: '瀹夌伅鏃堕棿鏄繀閫夐」', trigger: 'change' } - ], - andonLevel: [ - { required: true, message: '瀹夌伅绛夌骇鏄繀閫夐」', trigger: 'change' } - ], - orderStatus: [ - { required: true, message: '瀹夌伅鐘舵�佹槸蹇呴�夐」', trigger: 'change' } - ], - }, - url: { - add: "/andonorder/andonOrder/add", - edit: "/andonorder/andonOrder/edit", - queryById: "/andonorder/andonOrder/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: 'AndonOrderForm', + 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: 16 }, + }, + confirmLoading: false, + validatorRules: { + factoryId: [{ required: true, message: '浜х嚎鏄繀閫夐」', trigger: 'change' }], + buttonId: [{ required: true, message: '瀹夌伅绫诲瀷鏄繀閫夐」', trigger: 'change' }], + operator: [{ required: true, message: '瀹夌伅浜烘槸蹇呴�夐」', trigger: 'change' }], + operateTime: [{ required: true, message: '瀹夌伅鏃堕棿鏄繀閫夐」', trigger: 'change' }], + andonLevel: [{ required: true, message: '瀹夌伅绛夌骇鏄繀閫夐」', trigger: 'change' }], + orderStatus: [{ required: true, message: '瀹夌伅鐘舵�佹槸蹇呴�夐」', trigger: 'change' }], + }, + url: { + add: '/andonorder/andonOrder/add', + edit: '/andonorder/andonOrder/edit', + queryById: '/andonorder/andonOrder/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-order-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: 16px !important; +} +/* 璋冩暣鏂囨湰鍩熼珮搴﹀拰鍗犱綅绗︽牱寮� */ +.a-textarea { + resize: vertical; +} +.a-textarea::placeholder { + color: #ccc; +} +/* 鎸夐挳鍖哄煙鍙冲榻� */ +.a-form-footer { + text-align: right; + margin-top: 24px; +} +</style> \ No newline at end of file -- Gitblit v1.9.3