qushaowei
2023-11-06 ef388d95770306b4eea7c7afa884c37439d41651
单据名称增加单据来源
已添加3个文件
已修改4个文件
712 ■■■■■ 文件已修改
src/views/eam/SysFileNameList.vue 319 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/daily3MaintenanceOrder/EquipmentPrecisionCheckOrderModal.vue 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/daily3MaintenanceOrder/Maintenance3ReceiptModal.vue 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/daily3MaintenanceOrder/StoveCategoryModal.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyMaintenanceOrder/FinishDevolutionModal.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/sysFileName/SysFileNameForm.vue 234 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/sysFileName/SysFileNameModal.vue 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/SysFileNameList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,319 @@
<template>
  <a-card
    title="单据编码列表"
    :bordered="false"
  >
    <!-- æŸ¥è¯¢åŒºåŸŸ -->
    <div class="table-page-search-wrapper">
      <a-form
        layout="inline"
        @keyup.enter.native="searchQuery"
      >
        <a-row :gutter="24">
          <a-col
            :xl="6"
            :lg="7"
            :md="8"
            :sm="24"
          >
            <a-form-item label="单据编码">
              <a-input
                placeholder="请输入单据编码"
                v-model="queryParam.num"
              ></a-input>
            </a-form-item>
          </a-col>
          <a-col
            :xl="6"
            :lg="7"
            :md="8"
            :sm="24"
          >
            <a-form-item label="单据名称">
              <a-input
                placeholder="请输入单据名称"
                v-model="queryParam.name"
              ></a-input>
            </a-form-item>
          </a-col>
          <a-col
            :md="10"
            :sm="8"
          >
            <a-form-item label="版本状态">
              <!-- button-style="solid" -->
              <!-- size="small" -->
              <a-radio-group
                @change="onChange"
                default-value="2"
                v-model="queryParam.versionStatus"
              >
                <a-radio-button value="1">
                  æœªç”Ÿæ•ˆ
                </a-radio-button>
                <a-radio-button value="2">
                  å·²ç”Ÿæ•ˆ
                </a-radio-button>
                <a-radio-button value="3">
                  å·²å¤±æ•ˆ
                </a-radio-button>
              </a-radio-group>
            </a-form-item>
          </a-col>
        </a-row>
      </a-form>
    </div>
    <div class="table-operator">
      <a-button
        @click="handleAdd"
        type="primary"
        icon="plus"
      >新增</a-button>
      <!-- v-has="'maintenanceCycle:add'" -->
      <a-button
        type="primary"
        @click="searchQuery"
        icon="search"
      >查询</a-button>
      <a-button
        type="primary"
        @click="searchReset"
        icon="reload"
        style="margin-left: 8px"
      >重置</a-button>
      <!-- <a-dropdown v-if="selectedRowKeys.length > 0">
        <a-menu slot="overlay">
          <a-menu-item
            key="1"
            @click="batchDel"
          ><a-icon type="delete" />删除</a-menu-item>
        </a-menu>
        <a-button style="margin-left: 8px"> æ‰¹é‡æ“ä½œ <a-icon type="down" /></a-button>
      </a-dropdown> -->
    </div>
    <!-- table区域-begin -->
    <div>
      <div
        class="ant-alert ant-alert-info"
        style="margin-bottom: 16px"
      >
        <i class="anticon anticon-info-circle ant-alert-icon"></i> å·²é€‰æ‹©
        <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
        <a
          style="margin-left: 24px"
          @click="onClearSelected"
        >清空</a>
      </div>
      <a-table
        ref="table"
        size="middle"
        bordered
        rowKey="id"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        class="j-table-force-nowrap"
        @change="handleTableChange"
      >
        <!-- :scroll="{ x: 'calc(950px + 50%)', y: 900 }" -->
        <!-- :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" -->
        <span
          slot="action"
          slot-scope="text, record"
        >
          <a
            v-if="record.versionStatus == '2'"
            @click="handleRevise(record)"
          >升版</a>
          <!-- v-has="'maintenanceCycle:revise'" -->
          <a-divider type="vertical" />
          <a
            v-if="record.versionStatus == '1'"
            @click="handleTakeEffect(record)"
          >生效</a>
          <!-- v-has="'maintenanceCycle:takeEffect'" -->
          <a-divider type="vertical" />
          <a
            v-if="record.versionStatus == '1'"
            @click="handleEdit(record)"
          >编辑</a>
          <!-- v-has="'maintenanceCycle:edit'" -->
          <a-divider type="vertical" />
          <a-popconfirm
            v-if="record.versionStatus == '1'"
            title="确定删除吗?"
            @confirm="() => handleDelete(record.id)"
          >
            <!-- v-has="'maintenanceCycle:delete'" -->
            <a>删除</a>
          </a-popconfirm>
        </span>
      </a-table>
    </div>
    <sys-file-name-modal
      ref="modalForm"
      @ok="modalFormOk"
    ></sys-file-name-modal>
  </a-card>
</template>
<script>
import '@/assets/less/TableExpand.less'
import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import SysFileNameModal from './modules/sysFileName/SysFileNameModal'
import { deleteAction, getAction, postAction, requestPut } from '@/api/manage'
export default {
  name: 'SysFileNameList',
  mixins: [JeecgListMixin, mixinDevice],
  components: {
    SysFileNameModal,
  },
  data() {
    return {
      description: '单据编码',
      model: {},
      // è¡¨å¤´
      columns: [
        {
          title: '#',
          dataIndex: '',
          key: 'rowIndex',
          width: 60,
          align: 'center',
          customRender: function (t, r, index) {
            return parseInt(index) + 1
          },
        },
        {
          title: '单据名称',
          align: 'center',
          dataIndex: 'name_dictText',
        },
        {
          title: '单据编码',
          align: 'center',
          dataIndex: 'num',
        },
        {
          title: '版本',
          align: 'center',
          dataIndex: 'version',
        },
        {
          title: '版本状态',
          align: 'center',
          dataIndex: 'versionStatus_dictText',
        },
        {
          title: '创建人',
          align: 'center',
          dataIndex: 'createBy',
        },
        {
          title: '创建日期',
          align: 'center',
          dataIndex: 'createTime',
        },
        {
          title: '操作',
          dataIndex: 'action',
          align: 'center',
          fixed: 'right',
          width: 147,
          scopedSlots: { customRender: 'action' },
        },
      ],
      url: {
        list: '/eam/sysFileName/list',
        delete: '/eam/sysFileName/delete',
        deleteBatch: '/eam/sysFileName/deleteBatch',
        versionTakeEffect: "/eam/sysFileName/versionTakeEffect",
      },
      visible: false,
    }
  },
  methods: {
    //升版
    handleRevise: function (record) {
      this.$refs.modalForm.revise(record);
      this.$refs.modalForm.title = "保养周期规则版本升级";
      this.$refs.modalForm.disableSubmit = false;
    },
    //生效
    handleTakeEffect(record) {
      const that = this;
      that.confirmLoading = true;
      this.$confirm({
        title: '单据编码版本生效!',
        content: '提示:版本生效后上一版本将自动失效,请谨慎操作!',
        okText: '确认',
        cancelText: '取消',
        onOk() {
          requestPut(that.url.versionTakeEffect, { id: record.id, name: record.name, versionStatus: '2' }).then((res) => {
            if (res.success) {
              that.$message.success("版本生效成功!")
              that.loadData(1)
            } else {
              that.$message.warning("版本生效失败!")
            }
          }).finally(() => {
            that.confirmLoading = false;
          })
        },
      })
    },
    onChange(e) {
      this.queryParam.versionStatus = e.target.value;
      this.loadData();
    },
    loadData(arg) {
      if (!this.url.list) {
        this.$message.error("请设置url.list属性!")
        return
      }
      //加载数据 è‹¥ä¼ å…¥å‚æ•°1则加载第一页的内容
      if (arg === 1) {
        this.ipagination.current = 1;
      }
      var params = this.getQueryParams();//查询条件
      this.loading = true;
      getAction(this.url.list, params).then((res) => {
        if (res.success) {
          //update-begin---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
          this.dataSource = res.result.records || res.result;
          if (res.result.total) {
            this.ipagination.total = res.result.total;
          } else {
            this.ipagination.total = 0;
          }
          //update-end---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
        } else {
          this.$message.warning(res.message)
        }
      }).finally(() => {
        this.loading = false
      })
    },
    handleCancel() {
      this.visible = false;
    },
  },
}
</script>
<style scoped>
@import '~@assets/less/common.less';
</style>
src/views/eam/modules/daily3MaintenanceOrder/EquipmentPrecisionCheckOrderModal.vue
@@ -11,10 +11,15 @@
    <!-- :title="title" -->
    <a-spin :spinning="confirmLoading">
      <a-form :form="form">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-size: 15px;float: right;"
        >{{this.model.receiptsNum2}}</span>
        <a-divider
          orientation="center"
          style="font-size: large;font-style: normal;font-size: 30px;color: #66aeed;"
        > ç”Ÿäº§è®¾å¤‡ç²¾åº¦æ£€éªŒå• </a-divider>
        > {{this.model.receiptsName2}} </a-divider>
        <!-- ç”Ÿäº§è®¾å¤‡ç²¾åº¦æ£€éªŒå• -->
        <a-row :gutter="24">
          <a-col :span="8">
            <a-form-item
@@ -380,6 +385,7 @@
        add: "/eam/precisionInspection/precisionInspection",
        getPrecisionInspection: "/eam/precisionInspection/getPrecisionInspectionList",
        list: "/eam/dailyMaintenanceOrder/getMaintenanceCycleByStandardId",
        getSysFileName: "/eam/sysFileName/getSysFileName",
      },
    }
@@ -389,7 +395,9 @@
    edit(record) {
      let that = this;
      if (record.receipts2 == "" || record.receipts2 == null) {
        this.getSysFileName()
      }
      this.form.resetFields();
      // record.eachTolerance = '0'
      // record.partTolerance = '0'
@@ -456,8 +464,7 @@
      getAction(this.url.getPrecisionInspection, { maintenanceOrderId: this.model.id }).then((res) => {
        if (res.success) {
          this.dataSource = res.result[0].precisionInspectionDetails
          this.model = Object.assign({}, res.result[0]);
          debugger
          this.model = Object.assign(this.model, res.result[0]);
        }
      })
    },
@@ -515,6 +522,14 @@
      }
    },
    getSysFileName() {
      getAction(this.url.getSysFileName, { name: '16' }).then((res) => {
        if (res.success) {
          this.model = Object.assign(this.model, res.result[0]);
        }
      })
    },
  },
}
</script>
src/views/eam/modules/daily3MaintenanceOrder/Maintenance3ReceiptModal.vue
@@ -11,10 +11,15 @@
    <!-- :title="title" -->
    <a-spin :spinning="confirmLoading">
      <a-form :form="form">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-size: 15px;float: right;"
        >{{this.model.receiptsNum}}</span>
        <a-divider
          orientation="center"
          style="font-size: large;font-style: normal;font-size: 30px;color: #66aeed;"
        > ç”Ÿäº§è®¾å¤‡ä¸‰çº§ä¿å…»éªŒæ”¶å• </a-divider>
        > {{this.model.receiptsName}} </a-divider>
        <!-- ç”Ÿäº§è®¾å¤‡ä¸‰çº§ä¿å…»éªŒæ”¶å• -->
        <a-row :gutter="24">
          <a-col :span="8">
            <a-form-item
@@ -269,6 +274,7 @@
        add: "/eam/maintenanceThreeAcceptance/add",
        getMaintenance3Receipt: "/eam/maintenanceThreeAcceptance/getMaintenanceThreeAcceptanceList",
        list: "/eam/dailyMaintenanceOrder/getMaintenanceCycleByStandardId",
        getSysFileName: "/eam/sysFileName/getSysFileName",
      },
    }
  },
@@ -281,6 +287,10 @@
    edit(record) {
      let that = this;
      debugger
      if (record.receipts == "" || record.receipts == null) {
        this.getSysFileName()
      }
      this.form.resetFields();
      this.model = Object.assign({}, record);
      this.visible = true;
@@ -366,6 +376,14 @@
      }
    },
    getSysFileName() {
      getAction(this.url.getSysFileName, { name: '19' }).then((res) => {
        if (res.success) {
          this.model = Object.assign(this.model, res.result[0]);
        }
      })
    },
  },
}
</script>
src/views/eam/modules/daily3MaintenanceOrder/StoveCategoryModal.vue
@@ -12,11 +12,16 @@
    <!-- :title="title" -->
    <!-- <a-spin :spinning="confirmLoading"> -->
    <!-- <a-form :form="form"> -->
    <span
      class="ant-descriptions-title"
      style="font-size: large;font-size: 15px;float: right;"
    >{{this.model.receiptsNum}}</span>
    <a-divider
      orientation="center"
      style="font-size: large;font-style: normal;font-size: 30px;color: #66aeed;"
    > æ¸©åº¦å‡åŒ€æ€§æ£€æµ‹æ¡ä»¶ç¡®è®¤è¡¨ </a-divider>
    > {{this.model.receiptsName}} </a-divider>
    <!-- æ¸©åº¦å‡åŒ€æ€§æ£€æµ‹æ¡ä»¶ç¡®è®¤è¡¨ -->
    <!-- <div :style="{height: '115px',float: 'left',width: '100%',border: '1px solid #e9e9e9',padding: '50px 20px',background: '#fff',}"> -->
    <span
      class="ant-descriptions-title"
@@ -606,13 +611,13 @@
import pick from 'lodash.pick'
import JMultiSelectTag from '@/components/dict/JMultiSelectTag'
import Tooltip from 'ant-design-vue/es/tooltip'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
// import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import { getFileAccessHttpUrl } from '@/api/manage';
export default {
  name: "StoveCategoryModal",
  mixins: [JeecgListMixin],
  // mixins: [JeecgListMixin],
  components: {
    JMultiSelectTag,
    Tooltip,
src/views/eam/modules/dailyMaintenanceOrder/FinishDevolutionModal.vue
@@ -8,13 +8,17 @@
    @cancel="handleCancel"
    :confirmLoading="confirmLoading"
  >
    <!-- :title="title" -->
    <a-spin :spinning="confirmLoading">
      <a-form :form="form">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-size: 15px;float: right;"
        >{{this.model.receiptsNum}}</span>
        <a-divider
          orientation="center"
          style="font-size: large;font-style: normal;font-size: 30px;color: #66aeed;"
        > ç”Ÿäº§è®¾å¤‡äºŒçº§ä¿å…»å®Œå·¥ç§»äº¤å• </a-divider>
        > {{this.model.receiptsName}} </a-divider>
        <!-- ç”Ÿäº§è®¾å¤‡äºŒçº§ä¿å…»å®Œå·¥ç§»äº¤å• -->
        <a-row :gutter="24">
          <a-col :span="8">
            <a-form-item
@@ -227,7 +231,7 @@
      codeDisable: true,
      dataSource: [],
      model: {},
      departs: [],
      // departs: [],
      labelCol: {
        xs: { span: 24 },
        sm: { span: 6 },
@@ -246,9 +250,9 @@
        },
      },
      url: {
        add: "/eam/dailyMaintenanceOrder/add",
        // add: "/eam/dailyMaintenanceOrder/add",
        edit: "/eam/dailyMaintenanceOrder/approve",
        getSysDeparts: "/eam/dailyMaintenanceOrder/getSysDeparts",
        getSysFileName: "/eam/sysFileName/getSysFileName",
        list: "/eam/dailyMaintenanceOrder/getMaintenanceCycleByStandardId",
      },
@@ -259,7 +263,9 @@
    edit(record) {
      let that = this;
      this.getSysDeparts()
      if (record.receipts == "" || record.receipts == null) {
        this.getSysFileName()
      }
      this.form.resetFields();
      this.model = Object.assign({}, record);
      this.visible = true;
@@ -313,10 +319,10 @@
    },
    getSysDeparts() {
      getAction(this.url.getSysDeparts).then((res) => {
    getSysFileName() {
      getAction(this.url.getSysFileName, { name: '15' }).then((res) => {
        if (res.success) {
          this.departs = res.result
          this.model = Object.assign(this.model, res.result[0]);
        }
      })
    },
src/views/eam/modules/sysFileName/SysFileNameForm.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,234 @@
<template>
  <a-spin :spinning="confirmLoading">
    <j-form-container :disabled="formDisabled">
      <a-form-model
        ref="form"
        :model="model"
        :rules="validatorRules"
        slot="detail"
      >
        <a-row>
          <a-col :span="24">
            <a-form-model-item
              label="单据名称"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="name"
            >
              <j-dict-select-tag
                placeholder="请选择单据名称"
                :triggerChange="true"
                dictCode="sys_file_name"
                v-model="model.name"
              />
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="24">
            <a-form-model-item
              label="单据编码"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="num"
            >
              <a-input
                v-model="model.num"
                placeholder="请输入单据编码"
              ></a-input>
            </a-form-model-item>
          </a-col>
          <!-- <a-col :span="24">
            <a-form-model-item
              label="单据名称"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="name"
            >
              <a-input
                v-model="model.name"
                placeholder="请输入单据名称"
              ></a-input>
            </a-form-model-item>
          </a-col> -->
        </a-row>
        <a-row>
          <a-col :span="24">
            <a-form-model-item
              label="版本"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="version"
            >
              <a-input
                v-model="model.version"
                placeholder="请输入版本号"
                :disabled=true
              ></a-input>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row>
          <a-col
            v-if=" model.isRevise == true"
            :span="24"
          >
            <a-form-model-item
              label="历史版本"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="version"
            >
              <a-input
                v-model="model.historyVersion"
                placeholder="请输入历史版本"
                :disabled=true
              ></a-input>
            </a-form-model-item>
          </a-col>
        </a-row>
      </a-form-model>
    </j-form-container>
  </a-spin>
</template>
<script>
import { httpAction, getAction, requestPut } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
import pick from 'lodash.pick'
import JMultiSelectTag from '@/components/dict/JMultiSelectTag'
export default {
  name: 'SysFileNameForm',
  components: { JMultiSelectTag },
  props: {
    //表单禁用
    disabled: {
      type: Boolean,
      default: false,
      required: false,
    },
    // enterpriseId: {
    //   type: String,
    //   default: '',
    //   required: false,
    // },
    // version: {
    //   type: Number,
    //   required: false,
    // },
  },
  data() {
    return {
      model: {},
      labelCol: {
        xs: { span: 24 },
        sm: { span: 5 },
      },
      wrapperCol: {
        xs: { span: 24 },
        sm: { span: 16 },
      },
      confirmLoading: false,
      validatorRules: {
        name: [
          { required: true, message: '请选择单据名称!' },
        ],
        num: [
          { required: true, message: '请输入单据编码!' },
        ],
        version: [
          { required: true, message: '请输入版本号!' },
        ],
      },
      url: {
        add: '/eam/sysFileName/add',
        edit: '/eam/sysFileName/edit',
        revise: '/eam/sysFileName/revise',
        getReviseVersion: "/eam/sysFileName/getReviseVersion",
      },
    }
  },
  computed: {
    formDisabled() {
      return this.disabled
    },
  },
  created() {
    //备份model原始值
    this.modelDefault = JSON.parse(JSON.stringify(this.model))
  },
  methods: {
    add() {
      this.edit(this.modelDefault)
    },
    edit(record) {
      this.model = Object.assign({}, record)
      this.visible = true
      this.model.isRevise = false;
      //修改时
      if (record.id) {
        //新增时
      } else {
        this.model.version = '1.0'
        this.model.versionStatus = '1'
      }
    },
    //升版
    revise(record) {
      let that = this;
      that.visible = true;
      that.model = Object.assign({}, record)
      that.model.isRevise = true;
      that.model.historyVersion = record.version
      that.model.versionStatus = '1'
      requestPut(that.url.getReviseVersion, record).then((res) => {
        if (res.success) {
          that.model.version = res.result;
        }
      })
    },
    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 {
            if (this.model.isRevise) {
              httpurl += this.url.revise
              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>
src/views/eam/modules/sysFileName/SysFileNameModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,79 @@
<template>
  <j-modal
    :title="title"
    :width="width"
    :visible="visible"
    switchFullscreen
    @ok="handleOk"
    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
    @cancel="handleCancel"
    cancelText="关闭"
  >
    <sys-file-name-form
      ref="realForm"
      @ok="submitCallback"
      :disabled="disableSubmit"
    ></sys-file-name-form>
  </j-modal>
</template>
<script>
import SysFileNameForm from './SysFileNameForm'
export default {
  name: 'SysFileNameModal',
  components: {
    SysFileNameForm
  },
  props: {
    //表单禁用
    disabled: {
      type: Boolean,
      default: false,
      required: false
    },
  },
  data() {
    return {
      title: '',
      width: 650,
      visible: false,
      disableSubmit: false
    }
  },
  methods: {
    add() {
      this.visible = true
      this.$nextTick(() => {
        this.$refs.realForm.add();
      })
    },
    edit(record) {
      this.visible = true
      this.$nextTick(() => {
        this.$refs.realForm.edit(record);
      })
    },
    revise(record) {
      this.visible = true
      this.$nextTick(() => {
        this.$refs.realForm.revise(record);
      })
    },
    close() {
      this.$emit('close');
      this.visible = false;
    },
    handleOk() {
      this.$refs.realForm.submitForm();
    },
    submitCallback() {
      this.$emit('ok');
      this.visible = false;
    },
    handleCancel() {
      this.close()
    }
  }
}
</script>