|
@@ -3,31 +3,32 @@
|
|
|
<HcCard>
|
|
|
<template #header>
|
|
|
<HcTooltip keys="tentative_material_approach_add">
|
|
|
- <el-button type="primary" hc-btn @click="addFormModalClick">
|
|
|
+ <el-button hc-btn type="primary" @click="addFormModalClick">
|
|
|
<HcIcon name="add-circle"/>
|
|
|
<span>新增</span>
|
|
|
</el-button>
|
|
|
</HcTooltip>
|
|
|
<HcTooltip keys="tentative_material_approach_edit">
|
|
|
- <el-button hc-btn :disabled="tableCheckedKeys.length <= 0" @click="editFormModalClick">
|
|
|
+ <el-button :disabled="tableCheckedKeys.length <= 0" hc-btn @click="editFormModalClick">
|
|
|
<HcIcon name="edit"/>
|
|
|
<span>编辑</span>
|
|
|
</el-button>
|
|
|
</HcTooltip>
|
|
|
<HcTooltip keys="tentative_material_approach_copy">
|
|
|
- <el-button hc-btn :disabled="tableCheckedKeys.length <= 0" @click="copyTableModalClick">
|
|
|
+ <el-button :disabled="tableCheckedKeys.length <= 0" hc-btn @click="copyTableModalClick">
|
|
|
<HcIcon name="file-copy-2"/>
|
|
|
<span>复制</span>
|
|
|
</el-button>
|
|
|
</HcTooltip>
|
|
|
<HcTooltip keys="tentative_material_approach_del">
|
|
|
- <el-button hc-btn :disabled="tableCheckedKeys.length <= 0" @click="delModalClick">
|
|
|
+ <el-button :disabled="tableCheckedKeys.length <= 0" hc-btn @click="delModalClick">
|
|
|
<HcIcon name="delete-bin-2"/>
|
|
|
<span>删除</span>
|
|
|
</el-button>
|
|
|
</HcTooltip>
|
|
|
<HcTooltip keys="tentative_material_approach_printer">
|
|
|
- <el-button hc-btn :disabled="tableCheckedKeys.length <= 0" :loading="printerLoading" @click="printerClick">
|
|
|
+ <el-button :disabled="tableCheckedKeys.length <= 0" :loading="printerLoading" hc-btn
|
|
|
+ @click="printerClick">
|
|
|
<HcIcon name="printer"/>
|
|
|
<span>打印</span>
|
|
|
</el-button>
|
|
@@ -41,15 +42,17 @@
|
|
|
</template>
|
|
|
<template #search>
|
|
|
<div class="w-40">
|
|
|
- <el-select v-model="searchForm.materialType" placeholder="请选择材料类型" clearable>
|
|
|
- <el-option v-for="item in typeData" :key="item.value" :label="item['dictValue']" :value="item['dictKey']"/>
|
|
|
+ <el-select v-model="searchForm.materialType" clearable placeholder="请选择材料类型">
|
|
|
+ <el-option v-for="item in typeData" :key="item.value" :label="item['dictValue']"
|
|
|
+ :value="item['dictKey']"/>
|
|
|
</el-select>
|
|
|
</div>
|
|
|
<div class="w-64 ml-2">
|
|
|
<HcDatePicker :dates="betweenTime" clearable @change="betweenTimeUpdate"/>
|
|
|
</div>
|
|
|
<div class="w-72 ml-2">
|
|
|
- <el-input v-model="searchForm.queryValue" placeholder="请输入名称、规格、材料编号进行查询" clearable @keyup="keyUpEvent"/>
|
|
|
+ <el-input v-model="searchForm.queryValue" clearable placeholder="请输入名称、规格、材料编号进行查询"
|
|
|
+ @keyup="keyUpEvent"/>
|
|
|
</div>
|
|
|
<div class="ml-2">
|
|
|
<el-button type="primary" @click="searchClick">
|
|
@@ -58,16 +61,19 @@
|
|
|
</el-button>
|
|
|
</div>
|
|
|
</template>
|
|
|
- <HcTable ref="tableRef" :column="tableColumn" :datas="tableData" :loading="tableLoading" isCheck @selection-change="tableSelection">
|
|
|
- <template #materialType="{row}">{{getRowTableMaterialType(row['materialType'])}}</template>
|
|
|
- <template #materialCount="{row}">{{row.materialCount===-1?"":row.materialCount}}</template>
|
|
|
- <template #materialPrice="{row}">{{row.materialPrice===-1?"":row.materialPrice}}</template>
|
|
|
+ <HcTable ref="tableRef" :column="tableColumn" :datas="tableData" :loading="tableLoading" isCheck
|
|
|
+ @selection-change="tableSelection">
|
|
|
+ <template #materialType="{row}">{{ getRowTableMaterialType(row['materialType']) }}</template>
|
|
|
+ <template #materialCount="{row}">{{ row.materialCount === -1 ? "" : row.materialCount }}</template>
|
|
|
+ <template #materialPrice="{row}">{{ row.materialPrice === -1 ? "" : row.materialPrice }}</template>
|
|
|
<template #action="{row}">
|
|
|
<HcTooltip keys="tentative_material_approach_annex">
|
|
|
- <el-button type="primary" size="small" plain @click="viewAttachmentModalClick(row)">附件</el-button>
|
|
|
+ <el-button plain size="small" type="primary" @click="viewAttachmentModalClick(row)">附件
|
|
|
+ </el-button>
|
|
|
</HcTooltip>
|
|
|
<HcTooltip keys="tentative_material_approach_sampling">
|
|
|
- <el-button type="primary" size="small" plain @click="samplingRecordModalClick(row)">取样记录</el-button>
|
|
|
+ <el-button plain size="small" type="primary" @click="samplingRecordModalClick(row)">取样记录
|
|
|
+ </el-button>
|
|
|
</HcTooltip>
|
|
|
</template>
|
|
|
</HcTable>
|
|
@@ -77,8 +83,10 @@
|
|
|
</HcCard>
|
|
|
|
|
|
<!--新增/编辑-->
|
|
|
- <HcDialog :show="addEditFormModal" :title="`${addEditFormModel.id?'编辑':'新增'}材料进场`" widths="45rem" :loading="addEditFormLoading" @close="addEditFormModalClose" @save="addEditFormClick">
|
|
|
- <el-form ref="addEditFormRef" :model="addEditFormModel" :rules="addEditFormRules" label-width="auto" size="large">
|
|
|
+ <HcDialog :loading="addEditFormLoading" :show="addEditFormModal" :title="`${addEditFormModel.id?'编辑':'新增'}材料进场`"
|
|
|
+ widths="45rem" @close="addEditFormModalClose" @save="addEditFormClick">
|
|
|
+ <el-form ref="addEditFormRef" :model="addEditFormModel" :rules="addEditFormRules" label-width="auto"
|
|
|
+ size="large">
|
|
|
<div class="hc-form-item">
|
|
|
<el-form-item label="材料类型" prop="materialType">
|
|
|
<el-select v-model="addEditFormModel.materialType" block>
|
|
@@ -94,7 +102,8 @@
|
|
|
<el-input v-model="addEditFormModel.materialName"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="材料数量" prop="materialCount">
|
|
|
- <el-input v-model="addEditFormModel.materialCount" onkeyup="value = value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g,'$1')"/>
|
|
|
+ <el-input v-model="addEditFormModel.materialCount"
|
|
|
+ onkeyup="value = value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g,'$1')"/>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
<div class="hc-form-item">
|
|
@@ -115,7 +124,8 @@
|
|
|
</div>
|
|
|
<div class="hc-form-item">
|
|
|
<el-form-item label="进场日期">
|
|
|
- <el-date-picker type="date" v-model="addEditFormModel.mobilizationDate" class="block" value-format="YYYY-MM-DD" :clearable="false"/>
|
|
|
+ <el-date-picker v-model="addEditFormModel.mobilizationDate" :clearable="false" class="block"
|
|
|
+ type="date" value-format="YYYY-MM-DD"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="拟用部位">
|
|
|
<el-input v-model="addEditFormModel.proposedPosition"/>
|
|
@@ -142,20 +152,23 @@
|
|
|
</HcDialog>
|
|
|
|
|
|
<!--复制材料登记信息-->
|
|
|
- <HcDialog :show="copyTableModal" title="复制材料登记信息" widths="60rem" isTable :loading="copyTableLoading" @close="copyTableModalClose" @save="copyTableClick">
|
|
|
+ <HcDialog :loading="copyTableLoading" :show="copyTableModal" isTable title="复制材料登记信息" widths="60rem"
|
|
|
+ @close="copyTableModalClose" @save="copyTableClick">
|
|
|
<HcTable :column="copyTableColumn" :datas="copyTableData">
|
|
|
<template #materialNumber="{row}">
|
|
|
- <el-input v-model="row.materialNumber" :class="row.isMaterialNumber?'is-error':''" placeholder="请输入材料编号" @blur="materialNumberBlur(row)"/>
|
|
|
+ <el-input v-model="row.materialNumber" :class="row.isMaterialNumber?'is-error':''"
|
|
|
+ placeholder="请输入材料编号" @blur="materialNumberBlur(row)"/>
|
|
|
</template>
|
|
|
<template #action="{index}">
|
|
|
- <el-button type="danger" size="small" plain @click="materialNumberDel(index)">删除</el-button>
|
|
|
+ <el-button plain size="small" type="danger" @click="materialNumberDel(index)">删除</el-button>
|
|
|
</template>
|
|
|
</HcTable>
|
|
|
</HcDialog>
|
|
|
|
|
|
<!--导入-->
|
|
|
- <HcDialog :show="importModal" title="导入" widths="38rem" isRowFooter @close="importModalClose">
|
|
|
- <HcDragUpload ref="uploadRef" action="mobilization/import" :datas="uploadData" @progress="uploadprogress" @finished="uploadFinished" :api="'/api/blade-business/material/'"/>
|
|
|
+ <HcDialog :show="importModal" isRowFooter title="导入" widths="38rem" @close="importModalClose">
|
|
|
+ <HcDragUpload ref="uploadRef" :api="'/api/blade-business/material/'" :datas="uploadData" action="mobilization/import"
|
|
|
+ @finished="uploadFinished" @progress="uploadprogress"/>
|
|
|
<template #leftRowFooter>
|
|
|
<el-button size="large" @click="downloadImportClick">
|
|
|
<HcIcon name="download-2"/>
|
|
@@ -167,7 +180,7 @@
|
|
|
<HcIcon name="close"/>
|
|
|
<span>取消导入</span>
|
|
|
</el-button>
|
|
|
- <el-button type="primary" hc-btn :loading="importModalLoading" @click="importModalYesClick">
|
|
|
+ <el-button :loading="importModalLoading" hc-btn type="primary" @click="importModalYesClick">
|
|
|
<HcIcon name="folder-upload"/>
|
|
|
<span>确认导入</span>
|
|
|
</el-button>
|
|
@@ -175,41 +188,49 @@
|
|
|
</HcDialog>
|
|
|
|
|
|
<!--查看附件-->
|
|
|
- <HcDialog :show="viewAttachmentModal" title="查看附件" widths="70rem" :footer="false" isTable @close="viewAttachmentModalClose">
|
|
|
+ <HcDialog :footer="false" :show="viewAttachmentModal" isTable title="查看附件" widths="70rem"
|
|
|
+ @close="viewAttachmentModalClose">
|
|
|
<template #extra>
|
|
|
- <HcNewSwitch :datas="tabTypeTab" :keys="tabTypeKey" @change="tabTypeChange" :disabled="tableRowPdfDisabled"/>
|
|
|
+ <HcNewSwitch :datas="tabTypeTab" :disabled="tableRowPdfDisabled" :keys="tabTypeKey"
|
|
|
+ @change="tabTypeChange"/>
|
|
|
</template>
|
|
|
<div class="hc-switch-tab-content">
|
|
|
<div class="h-full w-full">
|
|
|
<div v-if="tableRowData[tabTypeKey]" style="text-align:center">
|
|
|
- <iframe allow="display-capture" width='100%' height='100%' frameborder='1' :src="tableRowData[tabTypeKey]" style="height:500px;width:90%" v-if="tableRowData[tabTypeKey]&&ispdf!==-1"/>
|
|
|
-
|
|
|
- <div class="hc-no-table-form" v-if="ispdf==-1">
|
|
|
+ <iframe v-if="tableRowData[tabTypeKey]&&ispdf!==-1" :src="tableRowData[tabTypeKey]" allow="display-capture" frameborder='1'
|
|
|
+ height='100%' style="height:500px;width:90%"
|
|
|
+ width='100%'/>
|
|
|
+
|
|
|
+ <div v-if="ispdf==-1" class="hc-no-table-form">
|
|
|
<div class="table-form-no" style="margin-top:100px">
|
|
|
<!-- <img :src="notableform" alt=""/>
|
|
|
<div class="desc">暂无 PDF 数据,请上传</div> -->
|
|
|
- <HcDragUpload autoUpload @progress="tableRowPdfProgress" @finished="tableRowPdfFinished" :action="'endpoint/put-file-attach'"
|
|
|
- :accept="'image/png,image/jpg,image/jpeg,application/pdf,.doc,.docx,application/msword'"
|
|
|
- :formatTip="':jpg/png/pdf/excel/word.pdf'"
|
|
|
+ <HcDragUpload :accept="'image/png,image/jpg,image/jpeg,application/pdf,.doc,.docx,application/msword'" :action="'endpoint/put-file-attach'" :formatTip="':jpg/png/pdf/excel/word.pdf'"
|
|
|
+ autoUpload
|
|
|
+ @finished="tableRowPdfFinished"
|
|
|
+ @progress="tableRowPdfProgress"
|
|
|
/>
|
|
|
- <el-link type="primary" :href="tableRowData[tabTypeKey]" style="margin-top:10px">{{splitFileName(tableRowData[tabTypeKey])}}</el-link>
|
|
|
+ <el-link :href="tableRowData[tabTypeKey]" style="margin-top:10px" type="primary">
|
|
|
+ {{ splitFileName(tableRowData[tabTypeKey]) }}
|
|
|
+ </el-link>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- <el-button type="primary" size="small" hc-btn @click="deleteFile" >
|
|
|
+ <el-button hc-btn size="small" type="primary" @click="deleteFile">
|
|
|
<HcIcon name="delete-bin-2"/>
|
|
|
<span>删除</span>
|
|
|
</el-button>
|
|
|
-
|
|
|
+
|
|
|
</div>
|
|
|
-
|
|
|
- <div class="hc-no-table-form" v-else>
|
|
|
+
|
|
|
+ <div v-else class="hc-no-table-form">
|
|
|
<div class="table-form-no">
|
|
|
<img :src="notableform" alt=""/>
|
|
|
<div class="desc">暂无 文件 数据,请上传</div>
|
|
|
- <HcDragUpload autoUpload @progress="tableRowPdfProgress" @finished="tableRowPdfFinished" :action="'endpoint/put-file-attach'"
|
|
|
- :accept="'image/png,image/jpg,image/jpeg,application/pdf,.doc,.docx,application/msword'"
|
|
|
- :formatTip="':jpg/png/pdf/excel/word.pdf'"
|
|
|
+ <HcDragUpload :accept="'image/png,image/jpg,image/jpeg,application/pdf,.doc,.docx,application/msword'" :action="'endpoint/put-file-attach'" :formatTip="':jpg/png/pdf/excel/word.pdf'"
|
|
|
+ autoUpload
|
|
|
+ @finished="tableRowPdfFinished"
|
|
|
+ @progress="tableRowPdfProgress"
|
|
|
/>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -218,10 +239,12 @@
|
|
|
</HcDialog>
|
|
|
|
|
|
<!--取样记录-->
|
|
|
- <HcDialog :show="samplingRecordModal" title="取样记录" widths="60%" :footer="false" isTable @close="samplingRecordModalClose">
|
|
|
- <HcTable :column="samplingTableColumn" :datas="samplingTableData" :loading="samplingTableLoading" :isIndex="false">
|
|
|
+ <HcDialog :footer="false" :show="samplingRecordModal" isTable title="取样记录" widths="60%"
|
|
|
+ @close="samplingRecordModalClose">
|
|
|
+ <HcTable :column="samplingTableColumn" :datas="samplingTableData" :isIndex="false"
|
|
|
+ :loading="samplingTableLoading">
|
|
|
<template #isOutsourcing="{row}">
|
|
|
- <span>{{row.isOutsourcing === 1 ? '是':'否'}}</span>
|
|
|
+ <span>{{ row.isOutsourcing === 1 ? '是' : '否' }}</span>
|
|
|
</template>
|
|
|
</HcTable>
|
|
|
</HcDialog>
|
|
@@ -230,13 +253,13 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-import {ref,onMounted} from "vue";
|
|
|
+import {ref, onMounted} from "vue";
|
|
|
import {useAppStore} from "~src/store";
|
|
|
import HcDragUpload from "./components/HcDragUpload.vue"
|
|
|
import FormItemUpload from "./components/FormItemUpload.vue"
|
|
|
import notableform from '~src/assets/view/notableform.svg';
|
|
|
import approachApi from "~api/tentative/material/approach"
|
|
|
-import {formValidate, getArrValue, getIndex, deepClone} from "vue-utils-plus"
|
|
|
+import {formValidate, getArrValue, arrIndex, deepClone} from "js-fast-way"
|
|
|
import {getDictionary} from "~api/other";
|
|
|
|
|
|
//初始变量
|
|
@@ -255,7 +278,7 @@ onMounted(() => {
|
|
|
//获取材料类型
|
|
|
const typeData = ref([])
|
|
|
const getMaterialType = async () => {
|
|
|
- const { data } = await getDictionary({
|
|
|
+ const {data} = await getDictionary({
|
|
|
code: 'material_type'
|
|
|
})
|
|
|
typeData.value = getArrValue(data)
|
|
@@ -266,7 +289,7 @@ const getMaterialType = async () => {
|
|
|
const getRowTableMaterialType = (type) => {
|
|
|
if (type > 0) {
|
|
|
const nodeData = typeData.value
|
|
|
- const index = getIndex(nodeData, 'dictKey', type)
|
|
|
+ const index = arrIndex(nodeData, 'dictKey', type)
|
|
|
return nodeData[index]?.dictValue ?? type
|
|
|
} else {
|
|
|
return ''
|
|
@@ -286,9 +309,9 @@ const betweenTimeUpdate = ({arr}) => {
|
|
|
if (arr.length > 0) {
|
|
|
searchForm.value.startTime = arr[0]
|
|
|
searchForm.value.endTime = arr[1]
|
|
|
- }else{
|
|
|
- searchForm.value.startTime = ''
|
|
|
- searchForm.value.endTime =''
|
|
|
+ } else {
|
|
|
+ searchForm.value.startTime = ''
|
|
|
+ searchForm.value.endTime = ''
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -316,20 +339,20 @@ const pageChange = ({current, size}) => {
|
|
|
//表格数据
|
|
|
const tableRef = ref(null)
|
|
|
const tableColumn = ref([
|
|
|
- {key:'materialNumber', name: '材料编号'},
|
|
|
- {key:'mobilizationDate', name: '进场日期'},
|
|
|
- {key:'materialName', name: '材料名称'},
|
|
|
- {key:'materialType', name: '材料类型'},
|
|
|
- {key:'specificationModel', name: '规格型号'},
|
|
|
- {key:'supplierUnit', name: '供应商单位'},
|
|
|
- {key:'materialPrice', name: '材料单价'},
|
|
|
- {key:'materialCount', name: '材料数量'},
|
|
|
- {key:'calculationUnit', name: '计算单位'},
|
|
|
- {key:'batchNumber', name: '生产批号'},
|
|
|
- {key:'placeOfProduction', name: '生产地/厂家'},
|
|
|
- {key:'proposedPosition', name: '拟用部位'},
|
|
|
- {key:'userName', name: '记录人'},
|
|
|
- {key:'action', name: '操作', width: 150, fixed: 'right', align: 'center'},
|
|
|
+ {key: 'materialNumber', name: '材料编号'},
|
|
|
+ {key: 'mobilizationDate', name: '进场日期'},
|
|
|
+ {key: 'materialName', name: '材料名称'},
|
|
|
+ {key: 'materialType', name: '材料类型'},
|
|
|
+ {key: 'specificationModel', name: '规格型号'},
|
|
|
+ {key: 'supplierUnit', name: '供应商单位'},
|
|
|
+ {key: 'materialPrice', name: '材料单价'},
|
|
|
+ {key: 'materialCount', name: '材料数量'},
|
|
|
+ {key: 'calculationUnit', name: '计算单位'},
|
|
|
+ {key: 'batchNumber', name: '生产批号'},
|
|
|
+ {key: 'placeOfProduction', name: '生产地/厂家'},
|
|
|
+ {key: 'proposedPosition', name: '拟用部位'},
|
|
|
+ {key: 'userName', name: '记录人'},
|
|
|
+ {key: 'action', name: '操作', width: 150, fixed: 'right', align: 'center'},
|
|
|
])
|
|
|
const tableRowData = ref({})
|
|
|
|
|
@@ -338,7 +361,7 @@ const tableLoading = ref(false)
|
|
|
const tableData = ref([])
|
|
|
const getTableData = async () => {
|
|
|
tableLoading.value = true
|
|
|
- const { error, code, data } = await approachApi.queryPage({
|
|
|
+ const {error, code, data} = await approachApi.queryPage({
|
|
|
projectId: projectId.value,
|
|
|
contractId: contractId.value,
|
|
|
...searchForm.value,
|
|
@@ -358,7 +381,7 @@ const getTableData = async () => {
|
|
|
const tableCheckedKeys = ref([]);
|
|
|
const tableSelection = (rows) => {
|
|
|
tableCheckedKeys.value = rows.filter((item) => {
|
|
|
- return (item??'') !== '';
|
|
|
+ return (item ?? '') !== '';
|
|
|
})
|
|
|
}
|
|
|
|
|
@@ -373,9 +396,9 @@ const editFormModalClick = () => {
|
|
|
const keys = tableCheckedKeys.value
|
|
|
if (keys.length === 1) {
|
|
|
addEditFormModel.value = keys[0]
|
|
|
- addEditFormModel.value.materialType= addEditFormModel.value.materialType+''
|
|
|
- addEditFormModel.value.materialCount=addEditFormModel.value.materialCount===-1?'':addEditFormModel.value.materialCount
|
|
|
- addEditFormModel.value.materialPrice=addEditFormModel.value.materialPrice===-1?'':addEditFormModel.value.materialPrice
|
|
|
+ addEditFormModel.value.materialType = addEditFormModel.value.materialType + ''
|
|
|
+ addEditFormModel.value.materialCount = addEditFormModel.value.materialCount === -1 ? '' : addEditFormModel.value.materialCount
|
|
|
+ addEditFormModel.value.materialPrice = addEditFormModel.value.materialPrice === -1 ? '' : addEditFormModel.value.materialPrice
|
|
|
addEditFormModal.value = true
|
|
|
} else if (keys.length > 1) {
|
|
|
window?.$message?.warning('只能选择一条数据编辑')
|
|
@@ -409,7 +432,7 @@ const addEditFormRules = {
|
|
|
required: false,
|
|
|
validator: async (rule, value, callback) => {
|
|
|
if (!value) {
|
|
|
- return
|
|
|
+ return
|
|
|
} else {
|
|
|
const ver = await verification(value)
|
|
|
if (!ver) {
|
|
@@ -425,23 +448,21 @@ const addEditFormRules = {
|
|
|
required: false,
|
|
|
validator: async (rule, value, callback) => {
|
|
|
if (!value) {
|
|
|
- return
|
|
|
- }
|
|
|
- else if(value.length>8) {
|
|
|
+ return
|
|
|
+ } else if (value.length > 8) {
|
|
|
callback(new Error('材料单价长度不能超过八位数'))
|
|
|
- }
|
|
|
+ }
|
|
|
},
|
|
|
trigger: 'blur'
|
|
|
},
|
|
|
- materialCount:{
|
|
|
- required: false,
|
|
|
+ materialCount: {
|
|
|
+ required: false,
|
|
|
validator: async (rule, value, callback) => {
|
|
|
- if (!value) {
|
|
|
+ if (!value) {
|
|
|
callback()
|
|
|
- }
|
|
|
- else if (value.length>10) {
|
|
|
+ } else if (value.length > 10) {
|
|
|
callback(new Error('材料数量长度不能超过10位数'))
|
|
|
- }
|
|
|
+ }
|
|
|
},
|
|
|
trigger: 'blur'
|
|
|
}
|
|
@@ -450,7 +471,7 @@ const addEditFormRules = {
|
|
|
|
|
|
//校验材料编号是否唯一
|
|
|
const verification = async (val) => {
|
|
|
- const { error, code, data } = await approachApi.verification({
|
|
|
+ const {error, code, data} = await approachApi.verification({
|
|
|
projectId: projectId.value,
|
|
|
contractId: contractId.value,
|
|
|
materialNumber: val,
|
|
@@ -469,30 +490,30 @@ const addEditFormClick = async () => {
|
|
|
const validate = await formValidate(addEditFormRef.value)
|
|
|
if (validate) {
|
|
|
addEditFormLoading.value = true
|
|
|
- addEditFormModel.value.materialCount=Number(addEditFormModel.value.materialCount)
|
|
|
- const { error, code } = await approachApi.submitForm({
|
|
|
+ addEditFormModel.value.materialCount = Number(addEditFormModel.value.materialCount)
|
|
|
+ const {error, code} = await approachApi.submitForm({
|
|
|
...addEditFormModel.value,
|
|
|
projectId: projectId.value,
|
|
|
contractId: contractId.value
|
|
|
})
|
|
|
//处理数据
|
|
|
-
|
|
|
+
|
|
|
if (!error && code === 200) {
|
|
|
window?.$message?.success('操作成功')
|
|
|
addEditFormModal.value = false
|
|
|
addEditFormLoading.value = false
|
|
|
await getTableData()
|
|
|
- }else{
|
|
|
- addEditFormLoading.value = false
|
|
|
+ } else {
|
|
|
+ addEditFormLoading.value = false
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//复制表格
|
|
|
const copyTableColumn = ref([
|
|
|
- {key:'materialName', name: '材料名称'},
|
|
|
- {key:'materialNumber', name: '材料编号'},
|
|
|
- {key:'action', name: '操作', width: 100},
|
|
|
+ {key: 'materialName', name: '材料名称'},
|
|
|
+ {key: 'materialNumber', name: '材料编号'},
|
|
|
+ {key: 'action', name: '操作', width: 100},
|
|
|
])
|
|
|
const copyTableData = ref([])
|
|
|
|
|
@@ -533,7 +554,7 @@ const copyTableClick = () => {
|
|
|
const rows = copyTableData.value
|
|
|
if (rows.length > 0) {
|
|
|
//判断是否满足条件
|
|
|
- const result = rows.every(({isMaterialNumber})=> {
|
|
|
+ const result = rows.every(({isMaterialNumber}) => {
|
|
|
return isMaterialNumber === false
|
|
|
})
|
|
|
//判断状态
|
|
@@ -554,7 +575,7 @@ const copyTableClick = () => {
|
|
|
//复制数据请求
|
|
|
const tableCopyData = async (rows) => {
|
|
|
copyTableLoading.value = true
|
|
|
- const { error, code } = await approachApi.copyData(rows)
|
|
|
+ const {error, code} = await approachApi.copyData(rows)
|
|
|
//处理数据
|
|
|
copyTableLoading.value = false
|
|
|
if (!error && code === 200) {
|
|
@@ -582,10 +603,10 @@ const delModalClick = () => {
|
|
|
//批量删除
|
|
|
const tableRemoveData = async () => {
|
|
|
const rows = tableCheckedKeys.value
|
|
|
- if (rows.length > 0 ) {
|
|
|
+ if (rows.length > 0) {
|
|
|
const ids = rowsToId(rows)
|
|
|
//删除请求
|
|
|
- const { error, code } = await approachApi.removeData({
|
|
|
+ const {error, code} = await approachApi.removeData({
|
|
|
projectId: projectId.value,
|
|
|
contractId: contractId.value,
|
|
|
ids: ids,
|
|
@@ -602,11 +623,11 @@ const tableRemoveData = async () => {
|
|
|
const printerLoading = ref(false)
|
|
|
const printerClick = async () => {
|
|
|
const rows = tableCheckedKeys.value
|
|
|
- if (rows.length > 0 ) {
|
|
|
+ if (rows.length > 0) {
|
|
|
printerLoading.value = true
|
|
|
const ids = rowsToId(rows)
|
|
|
//删除请求
|
|
|
- const { error, code, data } = await approachApi.exportPdf({
|
|
|
+ const {error, code, data} = await approachApi.exportPdf({
|
|
|
projectId: projectId.value,
|
|
|
contractId: contractId.value,
|
|
|
ids: ids,
|
|
@@ -614,7 +635,7 @@ const printerClick = async () => {
|
|
|
//处理数据
|
|
|
printerLoading.value = false
|
|
|
if (!error && code === 200) {
|
|
|
- window.open(data,'_blank')
|
|
|
+ window.open(data, '_blank')
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -662,36 +683,36 @@ const viewAttachmentModal = ref(false)
|
|
|
const viewAttachmentModalClick = (row) => {
|
|
|
tableRowData.value = row
|
|
|
viewAttachmentModal.value = true
|
|
|
- tabTypeKey.value='productionCertificate'
|
|
|
+ tabTypeKey.value = 'productionCertificate'
|
|
|
const key = tabTypeKey.value
|
|
|
- ispdf.value=getCaption( row[key])
|
|
|
+ ispdf.value = getCaption(row[key])
|
|
|
}
|
|
|
|
|
|
//类型tab数据和相关处理
|
|
|
const tabTypeKey = ref('')
|
|
|
-const tabTypeKeyType=ref(1)
|
|
|
-const ispdf=ref(-1)
|
|
|
+const tabTypeKeyType = ref(1)
|
|
|
+const ispdf = ref(-1)
|
|
|
const tabTypeTab = ref([
|
|
|
- {key:'productionCertificate', name: '生产合格证',type:1},
|
|
|
- {key:'qualityInspectionReport', name: '厂家质检报告',type:2},
|
|
|
- {key:'otherAccessories', name: '其他文件',type:3},
|
|
|
+ {key: 'productionCertificate', name: '生产合格证', type: 1},
|
|
|
+ {key: 'qualityInspectionReport', name: '厂家质检报告', type: 2},
|
|
|
+ {key: 'otherAccessories', name: '其他文件', type: 3},
|
|
|
]);
|
|
|
const tabTypeChange = (item) => {
|
|
|
tabTypeKey.value = item?.key
|
|
|
- tabTypeKeyType.value=item?.type
|
|
|
+ tabTypeKeyType.value = item?.type
|
|
|
const row = tableRowData.value, key = tabTypeKey.value
|
|
|
- ispdf.value=getCaption( row[key])
|
|
|
+ ispdf.value = getCaption(row[key])
|
|
|
}
|
|
|
//截取文件名称
|
|
|
-const splitFileName=(str)=>{
|
|
|
+const splitFileName = (str) => {
|
|
|
// if(str.indexOf("https://bladex-test-info.oss-cn-chengdu.aliyuncs.com//upload") != -1){
|
|
|
- if(str.indexOf("https://bladex-chongqing-info.oss-cn-hangzhou.aliyuncs.com//upload") != -1){
|
|
|
- let a=str.split('//')[2].split('/')[2]
|
|
|
+ if (str.indexOf("https://bladex-chongqing-info.oss-cn-hangzhou.aliyuncs.com//upload") != -1) {
|
|
|
+ let a = str.split('//')[2].split('/')[2]
|
|
|
return a
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
return str
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
//上传进度
|
|
|
const tableRowPdfDisabled = ref(false)
|
|
@@ -701,12 +722,12 @@ const tableRowPdfProgress = (res) => {
|
|
|
|
|
|
//上传完成
|
|
|
const tableRowPdfFinished = async (data1) => {
|
|
|
- console.log(data1,'data');
|
|
|
+ console.log(data1, 'data');
|
|
|
tableRowPdfDisabled.value = true
|
|
|
const row = tableRowData.value, key = tabTypeKey.value
|
|
|
row[key] = data1?.link
|
|
|
- console.log(row,'row');
|
|
|
- ispdf.value=getCaption( row[key])
|
|
|
+ console.log(row, 'row');
|
|
|
+ ispdf.value = getCaption(row[key])
|
|
|
// //保存请求
|
|
|
// const { error, code } = await approachApi.submitForm({
|
|
|
// ...row,
|
|
@@ -720,13 +741,13 @@ const tableRowPdfFinished = async (data1) => {
|
|
|
// window?.$message?.success('操作成功')
|
|
|
// await getTableData()
|
|
|
// }
|
|
|
- const { error, code, data } = await approachApi.updateMobilizationFile(
|
|
|
- {
|
|
|
- id:row.id,
|
|
|
- type: tabTypeKeyType.value,
|
|
|
- url:data1?.link,
|
|
|
-
|
|
|
- })
|
|
|
+ const {error, code, data} = await approachApi.updateMobilizationFile(
|
|
|
+ {
|
|
|
+ id: row.id,
|
|
|
+ type: tabTypeKeyType.value,
|
|
|
+ url: data1?.link,
|
|
|
+
|
|
|
+ })
|
|
|
//处理数据
|
|
|
tableRowData.value = row
|
|
|
tableRowPdfDisabled.value = false
|
|
@@ -735,17 +756,17 @@ const tableRowPdfFinished = async (data1) => {
|
|
|
await getTableData()
|
|
|
}
|
|
|
}
|
|
|
-const getCaption =(obj)=> {
|
|
|
+const getCaption = (obj) => {
|
|
|
const index = obj.lastIndexOf("pdf")
|
|
|
-
|
|
|
+
|
|
|
return index
|
|
|
}
|
|
|
|
|
|
//删除上传附件
|
|
|
-const deleteFile=()=>{
|
|
|
+const deleteFile = () => {
|
|
|
console.log('删除');
|
|
|
console.log(tableRowData.value[tabTypeKey]);
|
|
|
- tableRowData.value[tabTypeKey.value]=''
|
|
|
+ tableRowData.value[tabTypeKey.value] = ''
|
|
|
}
|
|
|
//关闭查看附件
|
|
|
const viewAttachmentModalClose = () => {
|
|
@@ -758,7 +779,7 @@ const samplingRecordModal = ref(false)
|
|
|
const samplingRecordModalClick = async (row) => {
|
|
|
samplingRecordModal.value = true
|
|
|
samplingTableLoading.value = true
|
|
|
- const { data } = await approachApi.samplingRecord({
|
|
|
+ const {data} = await approachApi.samplingRecord({
|
|
|
projectId: projectId.value,
|
|
|
contractId: contractId.value,
|
|
|
id: row.id,
|
|
@@ -769,12 +790,12 @@ const samplingRecordModalClick = async (row) => {
|
|
|
|
|
|
//取样记录数据
|
|
|
const samplingTableColumn = ref([
|
|
|
- {key:'specificationNumber', name: '样品编号'},
|
|
|
- {key:'materialName', name: '样品名称'},
|
|
|
- {key:'samplingDate', name: '取样日期'},
|
|
|
- {key:'userName', name: '取样人'},
|
|
|
- {key:'materialCount', name: '试样数量'},
|
|
|
- {key:'isOutsourcing', name: '是否外委'},
|
|
|
+ {key: 'specificationNumber', name: '样品编号'},
|
|
|
+ {key: 'materialName', name: '样品名称'},
|
|
|
+ {key: 'samplingDate', name: '取样日期'},
|
|
|
+ {key: 'userName', name: '取样人'},
|
|
|
+ {key: 'materialCount', name: '试样数量'},
|
|
|
+ {key: 'isOutsourcing', name: '是否外委'},
|
|
|
])
|
|
|
const samplingTableData = ref([])
|
|
|
const samplingTableLoading = ref(false)
|
|
@@ -786,7 +807,7 @@ const samplingRecordModalClose = () => {
|
|
|
|
|
|
//下载导入模板
|
|
|
const downloadImportClick = () => {
|
|
|
- window.open('https://bladex-test-info.oss-cn-chengdu.aliyuncs.com//upload/20221109/fea12aaee9d964d2d9f894cc6bf4a2f6.xlsx','_blank')
|
|
|
+ window.open('https://bladex-test-info.oss-cn-chengdu.aliyuncs.com//upload/20221109/fea12aaee9d964d2d9f894cc6bf4a2f6.xlsx', '_blank')
|
|
|
}
|
|
|
|
|
|
//拼接ID
|