From cf9d04b97ef0b8abb63e587e0898e301765ed4b9 Mon Sep 17 00:00:00 2001
From: cuilei <ray_tsu1@163.com>
Date: 星期一, 18 八月 2025 17:07:30 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/views/mdc/base/modules/DeviceParamThresholdManagement/ParamThresholdModal.vue | 252 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 252 insertions(+), 0 deletions(-)
diff --git a/src/views/mdc/base/modules/DeviceParamThresholdManagement/ParamThresholdModal.vue b/src/views/mdc/base/modules/DeviceParamThresholdManagement/ParamThresholdModal.vue
new file mode 100644
index 0000000..73e9c7c
--- /dev/null
+++ b/src/views/mdc/base/modules/DeviceParamThresholdManagement/ParamThresholdModal.vue
@@ -0,0 +1,252 @@
+<template>
+ <a-modal
+ :title="title"
+ :maskClosable="true"
+ :width="modalWidth"
+ @cancel="visible=false"
+ :visible="visible">
+ <a-spin :spinning="confirmLoading">
+ <a-form-model ref="form" :form="form" :model="model" :rules="validatorRules" :labelCol="labelCol"
+ :wrapperCol="wrapperCol">
+
+ <a-row :gutter="24">
+ <a-col :span="12">
+ <a-form-model-item prop="controlSystemType" label="椹卞姩绫诲瀷">
+ <a-select v-model="model.controlSystemType" @change="handleDriveTypeChange"
+ placeholder="璇烽�夋嫨椹卞姩绫诲瀷">
+ <a-select-option v-for="(item,index) in driveTypeList" :key="index" :value="item">
+ {{item}}
+ </a-select-option>
+ </a-select>
+ </a-form-model-item>
+ </a-col>
+
+ <a-col :span="12">
+ <a-form-model-item prop="chineseName" label="鍙傛暟">
+ <a-select v-model="model.chineseName" placeholder="璇烽�夋嫨鍙傛暟">
+ <a-select-option v-for="item in paramList" :key="item.value" :value="item.value">
+ {{item.label}}
+ </a-select-option>
+ </a-select>
+ </a-form-model-item>
+ </a-col>
+ </a-row>
+
+ <a-row :gutter="24">
+
+ <a-col :span="12">
+ <a-form-model-item prop="maxThreshold" label="闃堝�间笂闄�">
+ <a-input-number v-model="model.maxThreshold" placeholder="璇疯緭鍏ラ槇鍊间笂闄�" style="width: 100%"></a-input-number>
+ </a-form-model-item>
+ </a-col>
+
+ <a-col :span="12">
+ <a-form-model-item prop="minThreshold" label="闃堝�间笅闄�">
+ <a-input-number v-model="model.minThreshold" placeholder="璇疯緭鍏ラ槇鍊间笅闄�" style="width: 100%"></a-input-number>
+ </a-form-model-item>
+ </a-col>
+
+ </a-row>
+
+ </a-form-model>
+ </a-spin>
+
+
+ <template slot="footer">
+ <a-popconfirm title="纭畾鏀惧純鎿嶄綔锛�" @confirm="visible=false" okText="纭畾" cancelText="鍙栨秷">
+ <a-button style="margin-right: .8rem">鍙栨秷</a-button>
+ </a-popconfirm>
+ <a-button @click="handleSubmit" type="primary" :loading="confirmLoading">鎻愪氦</a-button>
+ </template>
+
+ </a-modal>
+
+</template>
+
+<script>
+ import pick from 'lodash.pick'
+ import api from '@/api/mdc'
+
+ export default {
+ name: 'ParamThresholdModal',
+ components: {},
+ props: {
+ driveTypeList: {
+ type: Array
+ }
+ },
+ data() {
+ return {
+ modalWidth: 700,
+ form: this.$form.createForm(this),
+ validatorRules: {
+ controlSystemType: [
+ {
+ required: true, message: '璇烽�夋嫨椹卞姩绫诲瀷'
+ }
+ ],
+ chineseName: [
+ {
+ required: true, message: '璇烽�夋嫨鍙傛暟'
+ }
+ ],
+ minThreshold: [
+ {
+ required: true, message: '璇疯緭鍏ラ槇鍊间笂闄�'
+ },
+ {
+ pattern: /^[0-9]+$/,
+ message: '璇疯緭鍏ラ樋鎷変集鏁板瓧'
+ }
+ ],
+ maxThreshold: [
+ {
+ required: true, message: '璇疯緭鍏ラ槇鍊间笅闄�'
+ },
+ {
+ pattern: /^[0-9]+$/,
+ message: '璇疯緭鍏ラ樋鎷変集鏁板瓧'
+ }
+ ]
+ },
+ title: '鎿嶄綔',
+ visible: false,
+ model: {
+ controlSystemType: '',
+ chineseName: '',
+ minThreshold: '',
+ maxThreshold: ''
+ },
+ labelCol: {
+ xs: { span: 24 },
+ sm: { span: 6 }
+ },
+ wrapperCol: {
+ xs: { span: 24 },
+ sm: { span: 15 }
+ },
+ confirmLoading: false,
+ url: {
+ userId: '/sys/user/generateUserId' // 寮曞叆鐢熸垚娣诲姞鐢ㄦ埛鎯呭喌涓嬬殑url
+ },
+ paramList: []
+ }
+ },
+ created() {
+
+ },
+ methods: {
+ add() {
+ this.visible = true
+ this.model = {
+ controlSystemType: this.driveTypeList[0],
+ chineseName: '',
+ minThreshold: '',
+ maxThreshold: ''
+ }
+ console.log('driveType',this.driveTypeList)
+ this.handleDriveTypeChange(this.driveTypeList[0])
+ this.$nextTick(() => {
+ this.form.setFieldsValue(pick(this.model, 'controlSystemType', 'chineseName', 'minThreshold', 'maxThreshold'))
+ })
+ },
+
+ edit(record) {
+ this.visible = true
+ this.model = Object.assign({}, record)
+ api.getParamListByDriveTypeApi(record.controlSystemType)
+ .then(res => {
+ if (res.success) {
+ this.paramList = res.result
+ }
+ })
+ this.model.chineseName = `${record.englishName}(${record.chineseName})`
+ this.$nextTick(() => {
+ this.form.setFieldsValue(pick(this.model, 'controlSystemType', 'chineseName', 'minThreshold', 'maxThreshold'))
+ })
+ },
+
+ handleSubmit() {
+ const that = this
+ // 瑙﹀彂琛ㄥ崟楠岃瘉
+ this.$refs.form.validate(valid => {
+ if (valid) {
+ if (this.model.maxThreshold > this.model.minThreshold) {
+ that.confirmLoading = true
+ let obj
+ if (this.title == '鏂板') {
+ obj = api.addParamThresholdApi(this.model)
+ } else {
+ obj = api.editParamThresholdApi(this.model)
+ }
+ obj.then((res) => {
+ if (res.success) {
+ that.$notification.success({
+ message: '娑堟伅',
+ description: res.message
+ })
+ that.$emit('ok')
+ } else {
+ that.$notification.warning({
+ message: '娑堟伅',
+ description: res.message
+ })
+ }
+ }).finally(() => {
+ that.confirmLoading = false
+ this.visible = false
+ })
+ } else {
+ this.$notification.warning({
+ message: '娑堟伅',
+ description: '闃堝�间笂闄愪笉鑳藉皬浜庣瓑浜庨槇鍊间笅闄�'
+ })
+ }
+
+ } else {
+ return false
+ }
+ })
+ },
+
+ /**
+ * 鑱旀兂杈撳叆妗嗙瓫閫夊姛鑳�
+ * @param input 杈撳叆鐨勫唴瀹�
+ * @param option 閰嶇疆
+ * @returns {boolean} 鍒ゆ柇鏄惁绛涢��
+ */
+ filterOption(input, option) {
+ return (
+ option.componentOptions.children[0].text.toUpperCase().indexOf(input.toUpperCase()) >= 0
+ )
+ },
+
+ /**
+ * 椹卞姩鍙傛暟绫诲瀷閫変腑鍚庢覆鏌撶浉搴旂殑鍙傛暟鍒楄〃
+ * @param value 椹卞姩鍙傛暟绫诲瀷閫変腑椤�
+ */
+ handleDriveTypeChange(value) {
+ api.getParamListByDriveTypeApi(value)
+ .then(res => {
+ if (res.success) {
+ this.paramList = res.result
+ this.model.chineseName = res.result.length ? res.result[0].value : undefined
+ if (this.model.chineseName) this.$refs.form.clearValidate('chineseName')
+ }
+ })
+ },
+
+ /**
+ * 缂栬緫鎴栨煡鐪嬭鎯呮暟鎹椂娓呴櫎鎶藉眽琛ㄥ崟楠岃瘉
+ */
+ removeValidate() {
+ if (this.$refs.form) this.$refs.form.clearValidate()
+ }
+ }
+
+ }
+</script>
+
+<style scoped>
+
+</style>
\ No newline at end of file
--
Gitblit v1.9.3