“linengliang”
2023-09-28 c0b0bb462de82e0fd7bb700ab8bb91a79af70798
精度管理
已添加5个文件
已修改4个文件
1299 ■■■■ 文件已修改
src/views/eam/PrecisionParametersNewList.vue 233 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/PrecisionParametersTemplateDetail.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/PrecisionParametersTemplateList.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/equipmentNew/EquipmentModal.vue 385 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/precisionParametersNew/PrecisionParametersNewForm.vue 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/precisionParametersNew/PrecisionParametersNewModal.vue 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/precisionParametersTemplate/JSelectPrecisionParametersModal.vue 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/precisionParametersTemplate/PrecisionParametersTemplateEditForm.vue 353 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/precisionParametersTemplate/PrecisionParametersTemplateEditModal.vue 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/PrecisionParametersNewList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,233 @@
<template>
  <a-card :bordered="false">
    <!-- æŸ¥è¯¢åŒºåŸŸ -->
    <div class="table-page-search-wrapper">
      <a-form
        layout="inline"
        @keyup.enter.native="searchQuery"
      >
        <a-row :gutter="24">
          <a-col
            :md="8"
            :sm="8"
          >
            <a-form-item label="检验项目名称">
              <j-input
                placeholder="请输入检验项目名称"
                v-model="queryParam.name"
              ></j-input>
            </a-form-item>
          </a-col>
        </a-row>
      </a-form>
    </div>
    <!-- æŸ¥è¯¢åŒºåŸŸ-END -->
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <div class="table-operator">
      <a-button
        type="primary"
        @click="searchQuery"
        icon="search"
      >查询</a-button>
      <a-button
        @click="searchReset"
        icon="reload"
      >重置</a-button>
      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
      <!-- <a-button type="primary" icon="download" @click="handleExportXls('精度管理')">导出</a-button>
      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
        <a-button type="primary" icon="import">导入</a-button>
      </a-upload> -->
      <!-- é«˜çº§æŸ¥è¯¢åŒºåŸŸ -->
      <!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
      <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"
        :scroll="{x:true}"
        bordered
        rowKey="id"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
        class="j-table-force-nowrap"
        @change="handleTableChange">
        <template slot="htmlSlot" slot-scope="text">
          <div v-html="text"></div>
        </template>
        <template slot="imgSlot" slot-scope="text,record">
          <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
          <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
        </template>
        <template slot="fileSlot" slot-scope="text">
          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
          <a-button
            v-else
            :ghost="true"
            type="primary"
            icon="download"
            size="small"
            @click="downloadFile(text)">
            ä¸‹è½½
          </a-button>
        </template>
        <span slot="action" slot-scope="text, record">
          <a @click="handleEdit(record)">编辑</a>
          <a-divider type="vertical" />
          <a-dropdown>
            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
            <a-menu slot="overlay">
              <a-menu-item>
                <a @click="handleDetail(record)">详情</a>
              </a-menu-item>
              <a-menu-item>
                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
                  <a>删除</a>
                </a-popconfirm>
              </a-menu-item>
            </a-menu>
          </a-dropdown>
        </span>
      </a-table>
    </div>
    <precision-parameters-new-modal ref="modalForm" @ok="modalFormOk"></precision-parameters-new-modal>
  </a-card>
</template>
<script>
  import '@/assets/less/TableExpand.less'
  import { mixinDevice } from '@/utils/mixin'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import PrecisionParametersNewModal from './modules/precisionParametersNew/PrecisionParametersNewModal'
  export default {
    name: 'PrecisionParametersNewList',
    mixins:[JeecgListMixin, mixinDevice],
    components: {
      PrecisionParametersNewModal
    },
    data () {
      return {
        description: '精度管理管理页面',
        // è¡¨å¤´
        columns: [
          {
            title: '#',
            dataIndex: '',
            key:'rowIndex',
            width:60,
            align:"center",
            customRender:function (t,r,index) {
              return parseInt(index)+1;
            }
          },
          {
            title:'检验项目名称',
            align:"center",
            dataIndex: 'name',
          },
          {
            title:'方向',
            align:"center",
            dataIndex: 'precisionParametersUda1',
            width:240
          },
          {
            title:'创建人',
            align:"center",
            dataIndex: 'createBy',
            width:240
          },
          {
            title:'创建时间',
            align:"center",
            dataIndex: 'createTime',
            customRender:function (text) {
              return !text?"":(text.length>10?text.substr(0,10):text)
            }
          },
          {
            title:'修改人',
            align:"center",
            dataIndex: 'updateBy',
            width:240
          },
          {
            title:'修改时间',
            align:"center",
            dataIndex: 'updateTime',
            customRender:function (text) {
              return !text?"":(text.length>10?text.substr(0,10):text)
            }
          },
          {
            title: '操作',
            dataIndex: 'action',
            align:"center",
            fixed:"right",
            width:147,
            scopedSlots: { customRender: 'action' }
          }
        ],
        url: {
          list: "/eam/precisionParameters/list",
          delete: "/eam/precisionParameters/delete",
          deleteBatch: "/eam/precisionParameters/deleteBatch",
          exportXlsUrl: "/eam/precisionParameters/exportXls",
          importExcelUrl: "eam/precisionParameters/importExcel",
        },
        dictOptions:{},
        superFieldList:[],
      }
    },
    created() {
    this.getSuperFieldList();
    },
    computed: {
      importExcelUrl: function(){
        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
      },
    },
    methods: {
      initDictConfig(){
      },
      getSuperFieldList(){
        let fieldList=[];
        fieldList.push({type:'string',value:'name',text:'name',dictCode:''})
        fieldList.push({type:'string',value:'createBy',text:'createBy',dictCode:''})
        fieldList.push({type:'date',value:'createTime',text:'createTime'})
        fieldList.push({type:'string',value:'updateBy',text:'updateBy',dictCode:''})
        fieldList.push({type:'date',value:'updateTime',text:'updateTime'})
        fieldList.push({type:'string',value:'precisionParametersUda1',text:'方向',dictCode:''})
        this.superFieldList = fieldList
      }
    }
  }
</script>
<style scoped>
  @import '~@assets/less/common.less';
</style>
src/views/eam/PrecisionParametersTemplateDetail.vue
@@ -77,27 +77,22 @@
            }
          },
          {
            title:'精度参数编码',
            align:"center",
            dataIndex: 'precisionParametersNum',
            width:400
          },
          {
            title:'精度参数名称',
            title:'检验项目名称',
            align:"center",
            dataIndex: 'precisionParametersName',
            width:400
          },
          {
            title:'精度参数分类',
            title:'位置',
            align:"center",
            dataIndex: 'precisionParametersCategory',
            dataIndex: 'precisionParametersUda1',
            width:400
          },
          {
            title:'计量单位',
            title:'允差(mm)',
            align:"center",
            dataIndex: 'unit',
            dataIndex: 'tolerance',
            width:400
          },
        ],
        url: {
src/views/eam/PrecisionParametersTemplateList.vue
@@ -31,6 +31,7 @@
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <div class="table-operator">
      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
      <a-button @click="handleCopy" type="primary" icon="copy" :disabled="selectedRowKeys.length!=1">复制</a-button>
    </div>
    <!-- table区域-begin -->
@@ -51,7 +52,7 @@
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange,type:'radio'}"
        :customRow="clickThenSelect"
        @change="handleTableChange">
@@ -85,25 +86,27 @@
      </a-tab-pane>
    </a-tabs>
    <precision-parameters-template-model ref="modalForm" @ok="modalFormOk"></precision-parameters-template-model>
    <precision-parameters-template-edit-modal ref="modalForm" @ok="modalFormOk"></precision-parameters-template-edit-modal>
    <!-- <precision-parameters-template-model ref="modalForm" @ok="modalFormOk"></precision-parameters-template-model> -->
  </a-card>
</template>
<script>
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import PrecisionParametersTemplateModel from './modules/precisionParametersTemplate/PrecisionParametersTemplateModel'
  // import PrecisionParametersTemplateModel from './modules/precisionParametersTemplate/PrecisionParametersTemplateModel'
  import { getAction } from '@/api/manage'
  import PrecisionParametersTemplateDetail from './PrecisionParametersTemplateDetail'
  import '@/assets/less/TableExpand.less'
  import PrecisionParametersTemplateEditModal from './modules/precisionParametersTemplate/PrecisionParametersTemplateEditModal.vue'
  export default {
    name: "PrecisionParametersTemplateList",
    mixins:[JeecgListMixin],
    components: {
      PrecisionParametersTemplateDetail,
      PrecisionParametersTemplateModel
      // PrecisionParametersTemplateModel,
        PrecisionParametersTemplateEditModal
    },
    data () {
      return {
@@ -120,7 +123,7 @@
            width: 50,
          },
          {
            title:'精度参数模板编码',
            title:'统一编码',
            align:"center",
            dataIndex: 'num',
            width:150
@@ -265,7 +268,12 @@
        this.queryParam = {};
        this.precisionParametersTemplateId='';
        this.loadData(1);
    },
      },
      handleCopy(){
        let record = this.selectionRows[0];
        record.num = '';
        this.handleEdit(record);
      }
    }
  }
</script>
src/views/eam/modules/equipmentNew/EquipmentModal.vue
@@ -111,26 +111,6 @@
          </a-col>
          <a-col :span="6">
            <a-form-model-item
              label="设备图片"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="equipmentPhoto"
            >
              <j-image-upload
                :isMultiple="false"
                v-model="model.equipmentPhoto"
              ></j-image-upload>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row>
          <a-divider
            orientation="center"
            style="font-size: large;font-style: italic;color: #66aeed;"
          >维护及使用信息</a-divider>
          <a-col :span="6">
            <a-form-model-item
              label="使用部门"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
@@ -164,6 +144,27 @@
              />
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="6">
            <a-form-model-item
              label="设备图片"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="equipmentPhoto"
            >
              <j-image-upload
                :isMultiple="false"
                v-model="model.equipmentPhoto"
              ></j-image-upload>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row>
          <a-divider
            orientation="center"
            style="font-size: large;font-style: italic;color: #f20707;"
          >维护及使用信息</a-divider>
          <a-col :span="6">
            <a-form-model-item
              label="维修部门"
@@ -199,7 +200,161 @@
              />
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item
              label="ABC标识"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="equipmentImportanceId"
            >
              <j-dict-select-tag
                allow-clear
                :disabled="formDisabled"
                placeholder="请选择ABC标识"
                :triggerChange="true"
                dictCode="ABC-standard-result"
                @change="changeNeedSpecific"
                v-model="model.equipmentImportanceId"
              />
            </a-form-model-item>
          </a-col>
          <a-col
            :span="6"
            v-if="needSpecific"
          >
            <a-form-model-item
              label="关键设备标识"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="specificEquipment"
            >
              <j-dict-select-tag
                allow-clear
                placeholder="请选择关键设备标识"
                :disabled="formDisabled"
                :triggerChange="true"
                dictCode="specific_equipment"
                v-model="model.specificEquipment"
              />
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="6">
            <a-form-model-item
              label="安全配置"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="securityConfiguration"
            >
              <a-input
                v-model="model.securityConfiguration"
                :disabled="formDisabled"
                placeholder="请输入安全配置"
              ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item
              label="冷却系统"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="coolingSystem"
            >
              <a-input
                v-model="model.coolingSystem"
                :disabled="formDisabled"
                placeholder="请输入冷却系统"
              ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item
              label="灭火器"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="fireExtinguisher"
            >
              <a-input
                v-model="model.fireExtinguisher"
                :disabled="formDisabled"
                placeholder="请输入灭火器"
              ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item
              label="灭火器有效期"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="fireExtinguisherValidityPeriod"
            >
              <a-input
                v-model="model.fireExtinguisherValidityPeriod"
                :disabled="formDisabled"
                placeholder="请输入灭火器有效期"
              ></a-input>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="6">
            <a-form-model-item
              label="操作系统"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="operatingSystem"
            >
              <a-input
                v-model="model.operatingSystem"
                :disabled="formDisabled"
                placeholder="请输入操作系统"
              ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item
              label="系统"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="system"
            >
              <a-input
                v-model="model.system"
                :disabled="formDisabled"
                placeholder="请输入系统"
              ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item
              label="端口"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="port"
            >
              <a-input
                v-model="model.port"
                :disabled="formDisabled"
                placeholder="请输入端口"
              ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
              <a-form-model-item
                label="坐标数量"
                :labelCol="labelCol"
                :wrapperCol="wrapperCol"
                prop="coordinateNum"
              >
              <a-input-number
                v-model="model.coordinateNum"
                :disabled="formDisabled"
                placeholder="请输入坐标数量"
                style="width: 100%"
              />
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row>
          <!-- <a-col :span="6">
@@ -455,8 +610,6 @@
              ></a-input>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="6">
            <a-form-model-item
              label="功能位置"
@@ -471,6 +624,8 @@
              ></a-input>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="6">
            <a-form-model-item
              label="资金来源"
@@ -485,7 +640,6 @@
              ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item
              label="资产来源国家"
@@ -502,121 +656,6 @@
          </a-col>
          <a-col :span="6">
            <a-form-model-item
              label="安全配置"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="securityConfiguration"
            >
              <a-input
                v-model="model.securityConfiguration"
                :disabled="formDisabled"
                placeholder="请输入安全配置"
              ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item
              label="冷却系统"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="coolingSystem"
            >
              <a-input
                v-model="model.coolingSystem"
                :disabled="formDisabled"
                placeholder="请输入冷却系统"
              ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item
              label="灭火器"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="fireExtinguisher"
            >
              <a-input
                v-model="model.fireExtinguisher"
                :disabled="formDisabled"
                placeholder="请输入灭火器"
              ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item
              label="灭火器有效期"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="fireExtinguisherValidityPeriod"
            >
              <a-input
                v-model="model.fireExtinguisherValidityPeriod"
                :disabled="formDisabled"
                placeholder="请输入灭火器有效期"
              ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item
              label="操作系统"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="operatingSystem"
            >
              <a-input
                v-model="model.operatingSystem"
                :disabled="formDisabled"
                placeholder="请输入操作系统"
              ></a-input>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="6">
            <a-form-model-item
              label="系统"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="system"
            >
              <a-input
                v-model="model.system"
                :disabled="formDisabled"
                placeholder="请输入系统"
              ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item
              label="端口"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="port"
            >
              <a-input
                v-model="model.port"
                :disabled="formDisabled"
                placeholder="请输入端口"
              ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item
              label="坐标数量"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="coordinateNum"
            >
              <a-input-number
                v-model="model.coordinateNum"
                :disabled="formDisabled"
                placeholder="请输入坐标数量"
                style="width: 100%"
              />
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item
              label="备注"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
@@ -629,12 +668,8 @@
              ></a-input>
            </a-form-model-item>
          </a-col>
          <a-divider
            orientation="center"
            style="font-size: large;font-style: italic;color: #66aeed;"
          >ABC标识</a-divider>
        </a-row>
        <a-row>
          </a-row>
          <a-row hidden>
          <a-col :span="6">
            <a-form-model-item
              label="平均使用率"
@@ -653,6 +688,8 @@
              />
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row hidden>
          <a-col :span="6">
            <a-form-model-item
              label="可替换性"
@@ -707,26 +744,6 @@
              />
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="6">
            <a-form-model-item
              label="故障频率"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="standardE"
            >
              <j-dict-select-tag
                allow-clear
                placeholder="请选择故障频率"
                :disabled="formDisabled"
                :triggerChange="true"
                dictCode="ABC-standardE"
                @change="standardResultCompute"
                v-model="model.standardE"
              />
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item
              label="设备价值"
@@ -742,44 +759,6 @@
                dictCode="ABC-standardF"
                v-model="model.standardF"
                @change="standardResultCompute"
              />
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item
              label="ABC标识"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="equipmentImportanceId"
            >
              <j-dict-select-tag
                allow-clear
                :disabled="formDisabled"
                placeholder="请选择ABC标识"
                :triggerChange="true"
                dictCode="ABC-standard-result"
                @change="changeNeedSpecific"
                v-model="model.equipmentImportanceId"
              />
            </a-form-model-item>
          </a-col>
          <a-col
            :span="6"
            v-if="needSpecific"
          >
            <a-form-model-item
              label="关键设备标识"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="specificEquipment"
            >
              <j-dict-select-tag
                allow-clear
                placeholder="请选择关键设备标识"
                :disabled="formDisabled"
                :triggerChange="true"
                dictCode="specific_equipment"
                v-model="model.specificEquipment"
              />
            </a-form-model-item>
          </a-col>
src/views/eam/modules/precisionParametersNew/PrecisionParametersNewForm.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,127 @@
<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">
              <a-input v-model="model.name" placeholder="请输入检验项名称"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="方向" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="precisionParametersUda1">
              <a-auto-complete
                  v-model="model.precisionParametersUda1"
                  :data-source="dataSource"
                  placeholder="请输入方向"
                />
            </a-form-model-item>
          </a-col>
        </a-row>
      </a-form-model>
    </j-form-container>
  </a-spin>
</template>
<script>
  import { httpAction, getAction } from '@/api/manage'
  import { validateDuplicateValue } from '@/utils/util'
  export default {
    name: 'PrecisionParametersNewForm',
    components: {
    },
    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: {
          name: [
          { required: true, message: '请输入设备名称!' },
          { min: 1, max: 60, message: '长度在 2 åˆ° 60 ä¸ªå­—符', trigger: 'blur' },
        ],
        precisionParametersUda1:[
          { required: true, message: '请输入方向!' },
        ]
        },
        url: {
          add: "/eam/precisionParameters/add",
          edit: "/eam/precisionParameters/edit",
          queryById: "/eam/precisionParameters/queryById"
        },
        dataSource:[
          '纵向',
          '横向',
          'Xè½´',
          'Yè½´',
          'Zè½´'
        ]
      }
    },
    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;
      },
      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>
src/views/eam/modules/precisionParametersNew/PrecisionParametersNewModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
<template>
  <j-modal
    :title="title"
    :width="width"
    :visible="visible"
    switchFullscreen
    @ok="handleOk"
    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
    @cancel="handleCancel"
    cancelText="关闭">
    <precision-parameters-new-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></precision-parameters-new-form>
  </j-modal>
</template>
<script>
  import PrecisionParametersNewForm from './PrecisionParametersNewForm'
  export default {
    name: 'PrecisionParametersNewModal',
    components: {
      PrecisionParametersNewForm
    },
    data () {
      return {
        title:'',
        width:800,
        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);
        })
      },
      close () {
        this.$emit('close');
        this.visible = false;
      },
      handleOk () {
        this.$refs.realForm.submitForm();
      },
      submitCallback(){
        this.$emit('ok');
        this.visible = false;
      },
      handleCancel () {
        this.close()
      }
    }
  }
</script>
src/views/eam/modules/precisionParametersTemplate/JSelectPrecisionParametersModal.vue
@@ -21,20 +21,9 @@
              :md="8"
              :sm="6"
            >
              <a-form-item label="精度参数代码">
              <a-form-item label="检验项目名称">
                <a-input
                  placeholder="请输入精度参数代码"
                  v-model="queryParam.num"
                />
              </a-form-item>
            </a-col>
            <a-col
              :md="8"
              :sm="6"
            >
              <a-form-item label="精度参数名称">
                <a-input
                  placeholder="请输入精度参数名称"
                  placeholder="请输入检验项目名称"
                  v-model="queryParam.name"
                />
              </a-form-item>
@@ -106,24 +95,16 @@
          }
        },
        {
          title: '精度参数代码',
          align: 'center',
          dataIndex: 'num',
        },
        {
          title: '精度参数名称',
          title: '检验项目名称',
          align: 'center',
          dataIndex: 'name',
          width:400,
        },
        {
          title: '精度参数分类',
          title: '方向',
          align: 'center',
          dataIndex: 'precisionParametersCategoryNumName',
        },
        {
          title: '计量单位',
          align: 'center',
          dataIndex: 'unitId_dictText',
          dataIndex: 'precisionParametersUda1',
          width:400,
        },
      ],
      selectedRowKeys: [],
@@ -247,7 +228,7 @@
      this.loadData();
    },
    handleSubmit() {
      this.$bus.$emit('selectionRows', this.selectionRows);
      this.$emit('selectionRows', this.selectionRows);
      this.searchReset(0)
      this.close();
    },
src/views/eam/modules/precisionParametersTemplate/PrecisionParametersTemplateEditForm.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,353 @@
<template>
  <a-spin :spinning="confirmLoading">
    <j-form-container :disabled="formDisabled">
      <!-- ä¸»è¡¨å•区域 -->
      <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
        <a-row :gutter="24">
          <a-col :span="12">
            <a-form-model-item
              label="统一编码"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="num"
            >
              <a-auto-complete
                  v-model="model.num"
                  :data-source="numList"
                  :disabled="formDisabled"
                  placeholder="请输入精度参数模板编码"
                  @search="onSearchNums"
              />
            </a-form-model-item>
          </a-col>
          <a-col :span="12" >
            <a-form-model-item
              label="名称"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="name"
            >
              <a-input
                allowClear
                :disabled="formDisabled"
                placeholder="请输入精度参数模板名称"
                v-model="model.name"
              />
            </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="remark"
            >
              <a-textarea
                allowClear
                :disabled="formDisabled"
                placeholder="请输入备注"
                v-model="model.remark"
              />
            </a-form-model-item>
          </a-col>
        </a-row>
      </a-form-model>
    </j-form-container>
      <!-- å­è¡¨å•区域 -->
    <a-tabs v-model="activeKey" @change="handleChangeTabs">
      <a-tab-pane tab="精度参数明细" :key="refKeys[0]" :forceRender="true">
        <j-vxe-table
          keep-source
          :ref="refKeys[0]"
          :loading="precisionParameters.loading"
          :columns="precisionParameters.columns"
          :dataSource="precisionParameters.dataSource"
          :maxHeight="600"
          :disabled="formDisabled"
          :rowNumber="true"
          :rowSelection="true"
          :toolbar="true"
          bordered
          :alwaysEdit="true"
          :toolbarConfig='toolbarConfig'
          >
          <!-- @valueChange="changeDate" -->
          <template slot='toolbarPrefix'>
            <a-button type='primary' @click='precisionParametersDetailSelect' :disabled="formDisabled"  icon="plus">选择精度参数
            </a-button>
          </template>
        </j-vxe-table>
      </a-tab-pane>
    </a-tabs>
    <j-select-precision-parameters-modal @selectionRows='selectionRows' ref='JSelectPrecisionParametersModal' ></j-select-precision-parameters-modal>
  </a-spin>
</template>
<script>
  import { getAction } from '@/api/manage'
  import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js'
  import { duplicateCheck } from '@/api/api'
  import { JVXETypes } from '@/components/jeecg/JVxeTable'
  import { getRefPromise,VALIDATE_FAILED} from '@/components/jeecg/JVxeTable/utils/vxeUtils.js'
  import { validateDuplicateValue } from '@/utils/util'
  import JFormContainer from '@/components/jeecg/JFormContainer'
  import dayjs from 'dayjs'
  import JSelectPrecisionParametersModal from './JSelectPrecisionParametersModal'
  export default {
    name: 'PrecisionParameters',
    mixins: [JVxeTableModelMixin],
    components: {
      JFormContainer,
      dayjs,
      JSelectPrecisionParametersModal
    },
    data() {
      return {
        toolbarConfig: {
        // prefix å‰ç¼€ï¼›suffix åŽç¼€
        slot: ['prefix', 'suffix'],
        // add æ–°å¢žæŒ‰é’®ï¼›remove åˆ é™¤æŒ‰é’®ï¼›clearSelection æ¸…空选择按钮
        btn: ['remove', 'clearSelection']
        },
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 },
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 },
        },
        model:{
         },
        // æ–°å¢žæ—¶å­è¡¨é»˜è®¤æ·»åŠ å‡ è¡Œç©ºæ•°æ®
        addDefaultRowNum: 0,
        validatorRules: {
          num: [
          { required: true, message: '请输入编码!' },
          { min: 1, max: 30, message: '长度在 2 åˆ° 30 ä¸ªå­—符', trigger: 'blur' },
          { validator: this.validateNum },
        ],
          name: [
          { required: true, message: '请输入名称!' },
          { min: 1, max: 30, message: '长度在 2 åˆ° 30 ä¸ªå­—符', trigger: 'blur' },
        ],
        },
        refKeys: ['precisionParametersList', ],
        tableKeys:['precisionParametersList', ],
        activeKey: 'precisionParametersList',
        precisionParameters: {
          loading: false,
          dataSource: [],
          columns: [
            {
              title: 'id',
              key: 'id',
               type: JVXETypes.hidden,
              disabled:true,
              align:'center',
            },
            {
              title: '检验项目名称',
              key: 'precisionParametersName',
               type: JVXETypes.normal,
              width:"350px",
              placeholder: '请输入${title}',
              disabled:true,
              align:'center',
              defaultValue:'',
            },
            {
              title: '方向',
              key: 'precisionParametersUda1',
               type: JVXETypes.normal,
              width:"350px",
              placeholder: '请输入${title}',
              disabled:true,
              align:'center',
              defaultValue:'',
            },
            {
              title: '允差(mm)',
              key: 'tolerance',
              type: JVXETypes.input,
              width:"350px",
              placeholder: '请输入${title}',
              align:'center',
              validateRules: [
              { handler({ cellValue, row, column }, callback, target) {
                    const regex = /^[+]?\d*\.?\d+\/[+]?\d*\.?\d+$/;
                    if (!new RegExp(regex).test(cellValue)&&cellValue!=null) {
                        callback(false, '允差要符合【上限/距离】的填写规则,如: 0.16/300') // false = æœªé€šè¿‡ï¼Œå¯ä»¥è·Ÿè‡ªå®šä¹‰æç¤º
                    } else {
                        callback(true) // true = é€šè¿‡éªŒè¯
                    }
                },
                message: '${title}默认提示'
              },
              ]
            },
          ]
        },
        url: {
          getNums:'/eam/precisionParametersTemplate/getNums',
          add: '/eam/precisionParametersTemplate/addNew',
          edit:'/eam/precisionParametersTemplate/editNew',
          precisionParametersList: {
            list: '/eam/precisionParametersTemplateDetail/listByPrecisionParametersTemplateId'
          },
        },
        numList:[],
      }
    },
    props: {
      //表单禁用
      disabled: {
        type: Boolean,
        default: false,
        required: false
      },
    },
    computed: {
      formDisabled(){
        return this.disabled
      },
    },
    created () {
    },
    methods: {
      addBefore(){
        this.precisionParameters
      },
      getAllTable() {
        let values = this.tableKeys.map(key => getRefPromise(this, key))
        return Promise.all(values)
      },
      /** è°ƒç”¨å®Œedit()方法之后会自动调用此方法 */
      editAfter() {
        this.$nextTick(() => {
        })
        // åŠ è½½å­è¡¨æ•°æ®
        if (this.model.id) {
          let params = {
            precisionParametersTemplateId: this.model.id,
            pageSize:9999,
          }
          this.requestSubTableData(this.url.precisionParametersList.list, params, this.precisionParameters)
        }
        if(this.model.num==''){
           this.model.id = ''
        }
      },
      //校验所有一对一子表表单
        validateSubForm(allValues){
            return new Promise((resolve,reject)=>{
              Promise.all([
              ]).then(() => {
                resolve(allValues)
              }).catch(e => {
                if (e.error === VALIDATE_FAILED) {
                  // å¦‚果有未通过表单验证的子表,就自动跳转到它所在的tab
                  this.activeKey = e.index == null ? this.activeKey : this.refKeys[e.index]
                } else {
                  console.error(e)
                }
              })
            })
        },
      /** æ•´ç†æˆformData */
      classifyIntoFormData(allValues) {
        let main = Object.assign(this.model, allValues.formValue)
        let details = allValues.tablesValue[0].tableData;
        for(var i=0;i<details.length;i++){
            details[i].sort=i+1;
            if(details[i].tolerance!=null&&details[i].tolerance!=''&&details[i].tolerance!=undefined){
                var inf = details[i].tolerance.split('/');
                var distance = inf[1];
                var upper = inf[0];
                details[i].distance = parseFloat(distance);
                details[i].upper = parseFloat(upper);
                details[i].lower = 0;
            }
        }
        return {
          ...main, // å±•å¼€
          precisionParametersTemplateDetailList: details,
        }
      },
      validateError(msg){
        this.$message.error(msg)
      },
      precisionParametersDetailSelect() {
      let ids = []
      let tableData = this.$refs.precisionParametersList.getTableData()
      for (let i = 0; i < tableData.length; i++) {
        ids.push(tableData[i].precisionParametersId)
      }
      this.$refs.JSelectPrecisionParametersModal.showModal(ids)
      this.$refs.JSelectPrecisionParametersModal.title = '选择精度参数'
      this.$refs.JSelectPrecisionParametersModal.disableSubmit = false
    },
    addSelected(data) {
      let tableData = this.$refs.precisionParametersList.getTableData()
      var tableStr = JSON.stringify(tableData)
      const addRows = []
      console.log(data)
      console.log(tableStr)
      for (let i = 0; i < data.length; i++) {
        var precisionParameters = {}
        if (tableStr.indexOf(data[i].id) == -1) {
          precisionParameters = {
            precisionParametersId:data[i].id,
            precisionParametersName: data[i].name,
            precisionParametersUda1:data[i].precisionParametersUda1,
            precisionParametersTemplateId:this.model.id,
          }
        }
        addRows.push(precisionParameters)
      }
      this.$refs.precisionParametersList.pushRows(addRows)
    },
    selectionRows(data) {
      // å¢žåŠ é€‰ä¸­çš„è®¾å¤‡åˆ°åˆ—è¡¨ä¸­
      this.addSelected(data)
    },
    onSearchNums(searchText){
      getAction(this.url.getNums,{searchText:searchText}).then(res=>{
             if(res.success){
                this.numList = res.result
             }
      })
    },
    validateNum(rule, value, callback) {
      var params = {
        tableName: 'mom_eam_precision_parameters_template',
        fieldName: 'num',
        fieldVal: value,
        dataId: this.model.id,
        //数据库中存在字段del_flag并使用该字段作为未删除策略,真删除:false å‡åˆ é™¤ï¼štrue
        delFlag: '0',
      };
      duplicateCheck(params).then((res) => {
        if (res.success) {
          callback();
        } else {
          callback("编号已存在!");
        }
      })
    },
    }
  }
</script>
<style scoped>
</style>
src/views/eam/modules/precisionParametersTemplate/PrecisionParametersTemplateEditModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,67 @@
<template>
  <j-modal
    :title="title"
    :width="1198"
    :height="600"
    :visible="visible"
    :maskClosable="true"
    switchFullscreen
    @ok="handleOk"
    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
    @cancel="handleCancel">
    <precision-parameters-template-edit-form
    ref="realForm"
    @ok="submitCallback"
    :disabled="disableSubmit"/>
  </j-modal>
</template>
<script>
import PrecisionParametersTemplateEditForm from './PrecisionParametersTemplateEditForm'
  export default {
    name: 'WarrantyUpdateModel',
    components: {
       PrecisionParametersTemplateEditForm
    },
    data() {
      return {
        title:'',
        width:1500,
        visible: false,
        disableSubmit: false
      }
    },
    methods:{
      add () {
        this.visible=true
        this.$nextTick(()=>{
          this.$refs.realForm.addBefore();
        })
      },
      edit (record) {
        this.visible=true
        this.$nextTick(()=>{
          this.$refs.realForm.edit(record);
        })
      },
      close () {
        this.$emit('close');
        this.visible = false;
      },
      handleOk () {
        this.$refs.realForm.handleOk();
      },
      submitCallback(){
        this.$emit('ok');
        this.$bus.$emit('loadData')
        this.visible = false;
      },
      handleCancel () {
        this.close()
      }
    }
  }
</script>
<style scoped>
</style>