lyh
2025-04-03 ca2395220a55946c644d06a9c01cdf04108d4e22
点检工单,设备搜索保养标准组件
已修改2个文件
202 ■■■■■ 文件已修改
src/views/eam/equipment/modules/MaintenanceEquipmentSelect.vue 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/maintenance/modules/EamInspectionOrderModal.vue 151 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/equipment/modules/MaintenanceEquipmentSelect.vue
@@ -8,6 +8,7 @@
    @search="loadData"
    :placeholder="placeholder"
    v-model="selectedAsyncValue"
    :maintenanceCategory="maintenanceCategory"
    style="width: 100%"
    :filterOption="false"
    @change="handleAsyncChange"
@@ -19,7 +20,8 @@
      <a-icon type="search" />
    </template>
    <a-spin v-if="loading" slot="notFoundContent" size="small" />
    <a-select-option v-for="d in options" :key="d.value" :value="d.value">{{ d.text }}</a-select-option>
    <a-select-option v-for="d in options" :key="d.equipmentId" :value="d.equipmentId">{{ d.equipmentText }}
    </a-select-option>
  </a-select>
</template>
@@ -32,7 +34,7 @@
  name: 'MaintenanceEquipmentSelect',
  props: {
    disabled: Boolean,
    value: [String, Number],
    value: [String, Number, String],
    placeholder: {
      type: String,
      default: '请选择',
@@ -43,6 +45,11 @@
      default: 20,
      required: false
    },
    maintenanceCategory: {
      type: String,
      default: '',
      required: false
    }
  },
  data() {
    this.loadData = debounce(this.loadData, 800)//消抖
@@ -62,7 +69,7 @@
      immediate: true,
      handler(val) {
        if (!val) {
          this.initDictData();
          this.initDictData()
        } else {
          this.initSelectValue()
        }
@@ -71,18 +78,23 @@
  },
  methods: {
    initSelectValue() {
      if(!this.selectedAsyncValue || !this.selectedAsyncValue.key || this.selectedAsyncValue.key!=this.value){
        console.log("这才请求后台")
        getAction(`/eam/maintenanceStandard/listByUser`, { id: this.value }).then(res=>{
          if(res.success){
            if(res.result && res.result.length > 0){
      if (!this.selectedAsyncValue || !this.selectedAsyncValue.key || this.selectedAsyncValue.key != this.value || !this.maintenanceCategory) {
        console.log('ssfs', this.selectedAsyncValue)
        console.log('ASGasgsgas', this.maintenanceCategory)
        console.log('这才请求后台')
        getAction(`/eam/maintenanceStandard/listByUser`, {
          id: this.value,
          maintenanceCategory: this.maintenanceCategory
        }).then(res => {
          if (res.success) {
            if (res.result && res.result.length > 0) {
              let obj = {
                key : this.value,
                key: this.value,
                label: res.result[0].text
              }
              this.selectedAsyncValue = {...obj};
              this.selectedAsyncValue = { ...obj }
            }
            this.options = res.result;
            this.options = res.result
          }
        })
      }
@@ -93,8 +105,14 @@
      const currentLoad = this.lastLoad
      this.options = []
      this.loading = true
      console.log('ssfs', this.selectedAsyncValue)
      console.log('ASGasgsgas', this.maintenanceCategory)
      // 字典code格式:table,text,code
      getAction(`/eam/maintenanceStandard/listByUser`, { keyword: value, pageSize: this.pageSize }).then(res => {
      getAction(`/eam/maintenanceStandard/listByUser`, {
        keyword: value,
        maintenanceCategory: this.maintenanceCategory,
        pageSize: this.pageSize
      }).then(res => {
        this.loading = false
        if (res.success) {
          if (currentLoad != this.lastLoad) {
@@ -111,8 +129,13 @@
    },
    initDictData() {
      //异步一开始也加载一点数据
      console.log('fasfasgasgasgfasg')
      this.loading = true
      getAction(`/eam/maintenanceStandard/listByUser`, { pageSize: this.pageSize, keyword: '' }).then(res => {
      getAction(`/eam/maintenanceStandard/listByUser`, {
        pageSize: this.pageSize,
        keyword: '',
        maintenanceCategory: this.maintenanceCategory
      }).then(res => {
        this.loading = false
        if (res.success) {
          this.options = [...res.result]
@@ -125,11 +148,13 @@
      return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
    },
    handleAsyncChange(selectedObj) {
      console.log('selectedObj', selectedObj)
      //update-begin-author:scott date:20201222 for:【搜索】搜索查询组件,删除条件,默认下拉还是上次的缓存数据,不好 JT-191
      if (selectedObj) {
        this.selectedAsyncValue = selectedObj
        //update-begin---author:wangshuai ---date:20221115  for:[issues/4213]JSearchSelectTag改造支持多选------------
        this.selectedValue = selectedObj.key
        this.$emit('autocompleteForm', this.options.find(item => item.equipmentId === selectedObj.key))
        //update-end---author:wangshuai ---date:20221115  for:[issues/4213]JSearchSelectTag改造支持多选------------
      } else {
        this.selectedAsyncValue = null
src/views/eam/maintenance/modules/EamInspectionOrderModal.vue
@@ -19,7 +19,9 @@
          </a-col>
          <a-col :span="8">
            <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentId" label="设备编号">
              <MaintenanceEquipmentSelect placeholder="请输入设备编号或名称搜索" v-model="model.equipmentId" :disabled="editable"></MaintenanceEquipmentSelect>
              <MaintenanceEquipmentSelect placeholder="请输入设备编号或名称搜索" v-model="model.equipmentId"
                                          :maintenanceCategory="maintenanceCategory" :disabled="editable"
                                          @autocompleteForm="autocompleteForm"></MaintenanceEquipmentSelect>
            </a-form-model-item>
          </a-col>
          <a-col :span="8">
@@ -31,23 +33,23 @@
        <a-row :gutter="24">
          <a-col :span="8">
            <a-form-model-item label="点检日期" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="inspectionDate">
              <j-date placeholder="请选择点检日期" v-model="model.inspectionDate"  style="width: 100%" />
              <j-date placeholder="请选择点检日期" v-model="model.inspectionDate" style="width: 100%" />
            </a-form-model-item>
          </a-col>
          <a-col :span="8">
            <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="maintenancePeriod" label="保养周期">
              <a-input-number v-model="model.maintenancePeriod" :min="1" :precision="0" disabled style="width: 100%"/>
              <a-input-number v-model="model.maintenancePeriod" :min="1" :precision="0" disabled style="width: 100%" />
            </a-form-model-item>
          </a-col>
          <a-col :span="8">
            <a-form-model-item label="点检过期时间" :labelCol="{span:6}"   :wrapperCol="{span:15}" prop="expirationTime">
              <j-date placeholder="请选择点检过期时间" v-model="model.expirationTime" disabled  style="width: 100%" />
            <a-form-model-item label="点检过期时间" :labelCol="{span:6}" :wrapperCol="{span:15}" prop="expirationTime">
              <j-date placeholder="请选择点检过期时间" v-model="model.expirationTime" disabled style="width: 100%" />
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="24">
            <a-form-model-item label="备注"  :labelCol="{span:1}"   :wrapperCol="{span:22}" prop="remark">
            <a-form-model-item label="备注" :labelCol="{span:1}" :wrapperCol="{span:22}" prop="remark">
              <a-textarea v-model="model.remark" rows="3" placeholder="请输入备注" />
            </a-form-model-item>
          </a-col>
@@ -65,7 +67,7 @@
            :loading="detail.loading"
            :dataSource="detail.dataSource"
            :columns="detail.columns"
            style="margin-top: 8px;"/>
            style="margin-top: 8px;" />
        </a-row>
      </a-form-model>
    </a-spin>
@@ -79,24 +81,24 @@
import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect'
export default {
  name: "EamMaintenanceStandardModal",
  name: 'EamMaintenanceStandardModal',
  mixins: [JVxeTableModelMixin],
  components: {
    MaintenanceEquipmentSelect,
    MaintenanceEquipmentSelect
  },
  data () {
  data() {
    return {
      title:"操作",
      title: '操作',
      visible: false,
      model: {},
      editable: false,
      labelCol: {
        xs: { span: 24 },
        sm: { span: 5 },
        sm: { span: 5 }
      },
      wrapperCol: {
        xs: { span: 24 },
        sm: { span: 16 },
        sm: { span: 16 }
      },
      confirmLoading: false,
      validatorRules: {
@@ -117,10 +119,11 @@
        ]
      },
      url: {
        add: "/eam/maintenanceStandard/add",
        edit: "/eam/maintenanceStandard/edit",
        detail: "/eam/eamMaintenanceStandardDetail/queryList",
        add: '/eam/maintenanceStandard/add',
        edit: '/eam/maintenanceStandard/edit',
        detail: '/eam/eamMaintenanceStandardDetail/queryList'
      },
      maintenanceCategory: 'POINT_INSPECTION',
      detail: {
        loading: false,
        dataSource: [],
@@ -129,100 +132,104 @@
            title: '序号',
            key: 'itemCode',
            width: '10%',
            align:"center",
            align: 'center'
          },
          {
            title: '保养项',
            key: 'itemName',
            width: '20%',
            align:"center",
            align: 'center'
          },
          {
            title: '保养要求',
            key: 'itemDemand',
            width: '30%',
            align:"center",
          },
        ],
            align: 'center'
          }
        ]
      }
    }
  },
  created () {
  created() {
  },
  methods: {
    add () {
      this.model = {};
      this.visible = true;
      this.editable = false;
    add() {
      this.model = {}
      this.visible = true
      this.editable = false
    },
    edit (record) {
      this.model = Object.assign({}, record);
      this.visible = true;
      this.editable = true;
      if(record && record.referenceFile) {
        let obj = JSON.parse(record.referenceFile);
        this.model.fileList = [obj];
      }else {
        this.model.fieldList = [];
    edit(record) {
      this.model = Object.assign({}, record)
      this.visible = true
      this.editable = true
      if (record && record.referenceFile) {
        let obj = JSON.parse(record.referenceFile)
        this.model.fileList = [obj]
      } else {
        this.model.fieldList = []
      }
      this.loadDetail(record.id);
      this.loadDetail(record.id)
    },
    close () {
      this.$emit('close');
      this.visible = false;
      this.$refs.form.clearValidate();
    close() {
      this.$emit('close')
      this.visible = false
      this.$refs.form.clearValidate()
    },
    async handleOk () {
      const that = this;
      let errMap = await that.$refs.editableDetailTable.validateTable();
      if(errMap){
        this.$message.warning("数据校验失败!");
        return;
    async handleOk() {
      const that = this
      let errMap = await that.$refs.editableDetailTable.validateTable()
      if (errMap) {
        this.$message.warning('数据校验失败!')
        return
      }
      // 触发表单验证
      this.$refs.form.validate(valid => {
        if (valid) {
          let tableData = that.$refs.editableDetailTable.getTableData();
          let removeData = that.$refs.editableDetailTable.getDeleteData();
          that.model.tableDetailList = [...tableData];
          that.model.removeDetailList = [...removeData];
          let tableData = that.$refs.editableDetailTable.getTableData()
          let removeData = that.$refs.editableDetailTable.getDeleteData()
          that.model.tableDetailList = [...tableData]
          that.model.removeDetailList = [...removeData]
          that.confirmLoading = true;
          let httpurl = '';
          let method = '';
          if(!this.model.id){
            httpurl+=this.url.add;
            method = 'post';
          }else{
            httpurl+=this.url.edit;
            method = 'put';
          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');
              that.close();
            }else{
              that.$message.warning(res.message);
          httpAction(httpurl, this.model, method).then((res) => {
            if (res.success) {
              that.$message.success(res.message)
              that.$emit('ok')
              that.close()
            } else {
              that.$message.warning(res.message)
            }
          }).finally(() => {
            that.confirmLoading = false;
            that.confirmLoading = false
          })
        }else{
          return false;
        } else {
          return false
        }
      })
    },
    handleCancel () {
    handleCancel() {
      this.close()
    },
    autocompleteForm(selectObj) {
      this.model.standardName = selectObj.standardName
      this.model.maintenancePeriod=selectObj.maintenancePeriod
    },
    //加载详情数据
    loadDetail(standardId) {
      this.detail.dataSource = [];
      this.detail.dataSource = []
      if (standardId) {
        getAction(this.url.detail, { standardId: standardId }).then(res => {
          if (res.success) {
            this.detail.dataSource = [...res.result];
            this.detail.dataSource = [...res.result]
          }
        })
      }