From 4b1898aa7f82e400b5958293c6c0a5dce5da6d6c Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期二, 18 二月 2025 14:44:26 +0800 Subject: [PATCH] 在线预览调整 --- src/components/do/a6-device/files.vue | 1238 +++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 781 insertions(+), 457 deletions(-) diff --git a/src/components/do/a6-device/files.vue b/src/components/do/a6-device/files.vue index bd95c1b..ab9e2c4 100644 --- a/src/components/do/a6-device/files.vue +++ b/src/components/do/a6-device/files.vue @@ -5,13 +5,21 @@ <h4><span class="line"></span><span>璁惧妗f</span></h4> <div class="btns"> <el-button type="primary" size="small" @click="openEditForm" - style="">淇妗f</el-button> + >淇妗f</el-button + > <el-button type="primary" size="small" @click="dialogVisible1 = true" - style="">娣诲姞闄勪欢</el-button> - <el-button type="primary" v-if="isPermission('showDeviceQrCodeButton')" size="small" @click="deviceDialog = true" - style="">鏌ョ湅璁惧浜岀淮鐮�</el-button> + >娣诲姞闄勪欢</el-button + > + <el-button + type="primary" + v-if="isPermission('showDeviceQrCodeButton')" + size="small" + @click="deviceDialog = true" + >鏌ョ湅璁惧浜岀淮鐮�</el-button + > <el-button type="primary" size="small" @click="handleDownOne" - style="">瀵煎嚭</el-button> + >瀵煎嚭</el-button + > </div> </div> <el-divider></el-divider> @@ -19,8 +27,12 @@ <el-row :gutter="20"> <el-col :span="6"> <!-- 鍔犳椂闂存埑閬垮厤娴忚鍣ㄧ紦瀛橀棶棰� --> - <el-image :src="`${javaApi}/img/${Mdata.imageUpload}`" fit="fill" :key="'personalPicture' + timeStamp" - style="width: 200px;height: 300px;border: 1px solid #000;border-radius: 10px;margin-left: 30px;margin-top: 20px;"> + <el-image + :src="`${javaApi}/img/${Mdata.imageUpload}`" + fit="fill" + :key="'personalPicture' + timeStamp" + style="width: 200px;height: 300px;border: 1px solid #000;border-radius: 10px;margin-left: 30px;margin-top: 20px;" + > <div slot="error" class="image-slot"> <i class="el-icon-picture-outline" style="font-size: 40px;"></i> </div> @@ -30,11 +42,8 @@ <div class="form-item"> <label>璁惧鍚嶇О</label> <!-- <p>{{ Mdata.deviceName }}</p> --> - <el-tooltip - class="item" - :content="Mdata.deviceName" - > - <span class="text-ellipsis" >{{ Mdata.deviceName }}</span> + <el-tooltip class="item" :content="Mdata.deviceName"> + <span class="text-ellipsis">{{ Mdata.deviceName }}</span> </el-tooltip> </div> <div class="form-item"> @@ -53,16 +62,13 @@ <div class="form-item"> <label>鐢熶骇鍘傚</label> <!-- <p>{{ Mdata.manufacturer }}</p> --> - <el-tooltip - class="item" - :content="Mdata.manufacturer" - > - <span class="text-ellipsis" >{{ Mdata.manufacturer }}</span> + <el-tooltip class="item" :content="Mdata.manufacturer"> + <span class="text-ellipsis">{{ Mdata.manufacturer }}</span> </el-tooltip> </div> <div class="form-item"> <label>璧勪骇缂栫爜</label> - <p class="text-ellipsis">{{ Mdata.assetCode }}</p> + <p class="text-ellipsis">{{ Mdata.assetCode }}</p> </div> <div class="form-item"> @@ -70,7 +76,7 @@ <p>{{ Mdata.acquisitionDate | formaterDateTime }}</p> </div> <div class="form-item"> - <label>鍚敤鏃ユ湡</label> + <label>鏍″噯鏈夋晥鏈�</label> <p>{{ Mdata.activationDate | formaterDateTime }}</p> </div> <div class="form-item"> @@ -84,10 +90,7 @@ </div> <div class="form-item"> <label>鍑嗙‘搴﹂噺鍊�</label> - <el-tooltip - class="item" - :content="Mdata.technicalIndicators" - > + <el-tooltip class="item" :content="Mdata.technicalIndicators"> <span class="text-ellipsis">{{ Mdata.technicalIndicators }}</span> </el-tooltip> <!-- <p>{{ Mdata.technicalIndicators }}</p> --> @@ -100,7 +103,6 @@ <label>琚巿鏉冧汉</label> <p>{{ Mdata.authorizedPersonName }}</p> </div> - </el-col> <el-col :span="10"> <div class="form-item"> @@ -116,13 +118,24 @@ <p>{{ Mdata.factoryNo }}</p> </div> <div class="form-items"> - <label>璁惧鐘舵��</label> - <el-radio-group v-model="Mdata.deviceStatus" style="margin-left: 10px;"> - <el-radio :label="0" :disabled="Mdata.deviceStatus != 0">姝e父</el-radio> - <el-radio :label="1" :disabled="Mdata.deviceStatus != 1">缁翠慨</el-radio> - <el-radio :label="2" :disabled="Mdata.deviceStatus != 2">鍋滅敤</el-radio> - <el-radio :label="3" :disabled="Mdata.deviceStatus != 3">鎶ュ簾</el-radio> - </el-radio-group> + <label>璁惧鐘舵��</label> + <el-radio-group + v-model="Mdata.deviceStatus" + style="margin-left: 10px;" + > + <el-radio :label="0" :disabled="Mdata.deviceStatus != 0" + >姝e父</el-radio + > + <el-radio :label="1" :disabled="Mdata.deviceStatus != 1" + >缁翠慨</el-radio + > + <el-radio :label="2" :disabled="Mdata.deviceStatus != 2" + >鍋滅敤</el-radio + > + <el-radio :label="3" :disabled="Mdata.deviceStatus != 3" + >鎶ュ簾</el-radio + > + </el-radio-group> </div> <div class="form-item"> <label>瀛樻斁鐐�</label> @@ -140,7 +153,7 @@ :content="Mdata.insProductItem" placement="top" > - <span class="text-ellipsis" >{{ Mdata.insProductItem }}</span> + <span class="text-ellipsis">{{ Mdata.insProductItem }}</span> </el-tooltip> </div> <div class="form-item"> @@ -149,16 +162,16 @@ </div> <div class="form-item"> - <label>鏈�杩戞函婧愭棩鏈�</label> + <label>鏈�杩戞牎鍑嗘棩鏈�</label> <p>{{ Mdata.lastCalibrationDate | formaterDateTime }}</p> + </div> + <div class="form-item"> + <label>涓嬫鏍″噯鏃ユ湡</label> + <p>{{ Mdata.nextCalibrationDate | formaterDateTime }}</p> </div> <div class="form-item"> <label>閲囪喘璐圭敤(鍏�)</label> <p>{{ Mdata.unitPrice }}</p> - </div> - <div class="form-item"> - <label>鍋滅敤鏃堕棿</label> - <p>{{ Mdata.nextCalibrationDate | formaterDateTime }}</p> </div> <div class="form-item"> <label>璁惧璐熻矗浜�</label> @@ -174,12 +187,27 @@ </div> </el-col> </el-row> - <h4 style="margin-bottom: 10px;margin-top: 10px;"><span class="line"></span><span>闄勪欢鍜岀浉鍏虫枃妗�</span></h4> + <h4 style="margin-bottom: 10px;margin-top: 10px;"> + <span class="line"></span><span>闄勪欢鍜岀浉鍏虫枃妗�</span> + </h4> <el-table height="200px" :data="tableDataA"> - <el-table-column header-align="center" align="center" prop="prop" label="搴忓彿" type="index" width="60" /> + <el-table-column + header-align="center" + align="center" + prop="prop" + label="搴忓彿" + type="index" + width="60" + /> <el-table-column prop="documentType" label="绫诲瀷" min-width="100"> <template v-slot="scope"> - {{ scope.row.documentType === '0' ? '闄勪欢' : scope.row.documentType === '1' ? '鏂囨。' : '' }} + {{ + scope.row.documentType === "0" + ? "闄勪欢" + : scope.row.documentType === "1" + ? "鏂囨。" + : "" + }} </template> </el-table-column> <el-table-column prop="name" label="鍚嶇О" min-width="150" /> @@ -192,55 +220,110 @@ <el-table-column prop="comments" label="澶囨敞" min-width="150" /> <el-table-column fixed="right" label="鎿嶄綔" min-width="180"> <template slot-scope="scope"> - <el-button type="text" size="small" @click="handleAttachmentClick(scope.row)">涓嬭浇闄勪欢</el-button> - <el-button type="text" size="small" @click="handleViewClick(scope.row)">鏌ョ湅</el-button> - <el-button type="text" size="small" @click="handleDeleteClick(scope.row)">鍒犻櫎</el-button> + <el-button + type="text" + size="small" + @click="handleAttachmentClick(scope.row)" + >涓嬭浇闄勪欢</el-button + > + <el-button + type="text" + size="small" + @click="handleViewClick(scope.row)" + >鏌ョ湅</el-button + > + <el-button + type="text" + size="small" + @click="handleDeleteClick(scope.row)" + >鍒犻櫎</el-button + > </template> </el-table-column> </el-table> </div> <!-- 淇 --> - <el-dialog title="淇妗f" top="5vh" :visible.sync="dialogVisible" width="70%" @open="openFileRevisionDialog" - :before-close="handleClose"> - <el-row style="display:flex;justify-content: space-around;"> + <el-dialog + title="妗f淇" + top="5vh" + :visible.sync="dialogVisible" + width="70%" + @open="openFileRevisionDialog" + :before-close="handleClose" + > + <el-row + style="display:flex;justify-content: space-around;max-height: 75vh;overflow-y: auto;" + > <!-- 宸﹁竟甯冨眬 --> <el-col :span="7"> <el-col> <!-- 鍥剧墖 --> - <el-image class="img" style="width:100%;height: 320px;margin-bottom:16px" - :src="javaApi + '/img/' + editData.imageUpload"> - <div slot="error" class="image-error" style="width: calc(100% -2px); + <el-image + class="img" + style="width:100%;height: 320px;margin-bottom:16px" + :src="javaApi + '/img/' + editData.imageUpload" + > + <div + slot="error" + class="image-error" + style="width: calc(100% - 2px); height: 318px; border-radius: 16px; display: flex; align-items: center; justify-content: center; - border: 1px solid #EEEEEE;"> - <i class="el-icon-picture-outline" style="font-size:60px;color:#666666;"></i> + border: 1px solid #EEEEEE;" + > + <i + class="el-icon-picture-outline" + style="font-size:60px;color:#666666;" + ></i> </div> </el-image> <!-- 琛ㄥ崟 --> - <el-form :model="editData" label-width="120px" ref="rules1" :rules="rules1"> + <el-form + :model="editData" + label-width="120px" + ref="rules1" + :rules="rules1" + > <el-form-item label="浠櫒鍚嶇О:" prop="deviceName"> <el-input v-model="editData.deviceName" size="small"></el-input> </el-form-item> <el-form-item label="浠櫒鍚嶇ОEN:" prop="enDeviceName"> - <el-input v-model="editData.enDeviceName" size="small"></el-input> + <el-input + v-model="editData.enDeviceName" + size="small" + ></el-input> </el-form-item> <el-form-item label="瑙勬牸鍨嬪彿:" prop="specificationModel"> - <el-input v-model="editData.specificationModel" size="small"></el-input> + <el-input + v-model="editData.specificationModel" + size="small" + ></el-input> </el-form-item> <el-form-item label="鐢熶骇鍘傚:"> - <el-input v-model="editData.manufacturer" size="small"></el-input> + <el-input + v-model="editData.manufacturer" + size="small" + ></el-input> </el-form-item> </el-form> </el-col> </el-col> <!-- 涓棿甯冨眬 --> <el-col :span="7"> - <el-form :model="editData" label-width="116px" ref="rules2" :rules="rules1"> + <el-form + :model="editData" + label-width="116px" + ref="rules2" + :rules="rules1" + > <el-form-item label="鏍″噯鏈嶅姟鏈烘瀯:"> - <el-input v-model="editData.calibrationServices" disabled size="small"></el-input> + <el-input + v-model="editData.calibrationServices" + size="small" + ></el-input> </el-form-item> <el-form-item label="璧勪骇缂栫爜:"> <el-input v-model="editData.assetCode" size="small"></el-input> @@ -252,21 +335,48 @@ <el-input v-model="editData.factoryNo" size="small"></el-input> </el-form-item> <el-form-item label="绠$悊缂栧彿:" prop="managementNumber"> - <el-input v-model="editData.managementNumber" size="small"></el-input> + <el-input + v-model="editData.managementNumber" + size="small" + ></el-input> </el-form-item> <el-form-item label="璐疆鏃ユ湡:"> - <el-date-picker style="width:100%" v-model="editData.acquisitionDate" type="date" format="yyyy-MM-dd" - value-format="yyyy-MM-dd HH:mm:ss" size="small" placeholder="閫夋嫨鏃ユ湡"> + <el-date-picker + style="width:100%" + v-model="editData.acquisitionDate" + type="date" + format="yyyy-MM-dd" + value-format="yyyy-MM-dd HH:mm:ss" + size="small" + placeholder="閫夋嫨鏃ユ湡" + > </el-date-picker> </el-form-item> - <el-form-item label="鍚敤鏃ユ湡:" prop="activationDate"> - <el-date-picker style="width:100%" v-model="editData.activationDate" type="date" format="yyyy-MM-dd" - value-format="yyyy-MM-dd HH:mm:ss" size="small" placeholder="閫夋嫨鏃ユ湡"> + <el-form-item label="鏍″噯鏈夋晥鏈�:" prop="activationDate"> + <el-date-picker + style="width:100%" + v-model="editData.activationDate" + type="date" + format="yyyy-MM-dd" + value-format="yyyy-MM-dd HH:mm:ss" + size="small" + placeholder="閫夋嫨鏃ユ湡" + > </el-date-picker> </el-form-item> <el-form-item label="璐熻矗浜�:"> - <el-select v-model="editData.equipmentManager" placeholder="璇烽�夋嫨" size="small" style="width:100%"> - <el-option v-for="item in responsiblePersonList" :key="item.name" :label="item.name" :value="item.id"> + <el-select + v-model="editData.equipmentManager" + placeholder="璇烽�夋嫨" + size="small" + style="width:100%" + > + <el-option + v-for="item in responsiblePersonList" + :key="item.name" + :label="item.name" + :value="item.id" + > </el-option> </el-select> </el-form-item> @@ -274,39 +384,92 @@ <el-input v-model="editData.storagePoint" size="small"></el-input> </el-form-item> <el-form-item label="鎶�鏈寚鏍�:"> - <el-input v-model="editData.technicalIndicators" :rows="7" type="textarea" size="small"></el-input> + <el-input + v-model="editData.technicalIndicators" + :rows="7" + type="textarea" + size="small" + ></el-input> </el-form-item> </el-form> </el-col> <!-- 鍙宠竟甯冨眬 --> <el-col :span="7"> - <el-form :model="editData" label-width="140px" ref="ruleForm" :rules="rules1"> + <el-form + :model="editData" + label-width="140px" + ref="ruleForm" + :rules="rules1" + > <!-- 瀹為獙瀹ゅ垪琛� --> <el-form-item label="鎵�灞為儴闂�:"> - <el-select v-model="editData.subordinateDepartmentsId" placeholder="璇烽�夋嫨" size="small" style="width:100%"> - <el-option v-for="item in subordinateDepartmentsList" :key="item.value" :label="item.label" - :value="item.value"> + <el-select + v-model="editData.subordinateDepartmentsId" + placeholder="璇烽�夋嫨" + size="small" + style="width:100%" + > + <el-option + v-for="item in subordinateDepartmentsList" + :key="item.value" + :label="item.label" + :value="item.value" + > </el-option> </el-select> </el-form-item> <el-form-item label="妫�娴嬮」鐩�:"> - <el-cascader v-model="editData.insProductIds" :options="options" :show-all-levels="false" :props="props" - placeholder="璇烽�夋嫨" size="small" style="width:100%;" :collapse-tags="true" separator="," filterable - clearable></el-cascader> + <el-cascader + v-model="editData.insProductIds" + :options="options" + :show-all-levels="false" + :props="props" + placeholder="璇烽�夋嫨" + size="small" + style="width:100%;" + :collapse-tags="true" + separator="," + filterable + clearable + ></el-cascader> </el-form-item> - <!-- <el-form-item label="鏈�杩戞牎鍑嗘棩鏈�:"> - <el-date-picker style="width:100%" v-model="Mdata.latestTraceability" format="yyyy-MM-dd" - value-format="yyyy-MM-dd" type="date" size="small" placeholder="閫夋嫨鏃ユ湡"> + <el-form-item label="鏈�杩戞牎鍑嗘棩鏈�:"> + <el-date-picker + style="width:100%" + v-model="editData.lastCalibrationDate" + format="yyyy-MM-dd" + value-format="yyyy-MM-dd HH:mm:ss" + type="date" + size="small" + placeholder="閫夋嫨鏃ユ湡" + > </el-date-picker> - </el-form-item> --> - <!-- <el-form-item label="涓嬫鏍″噯鏃ユ湡:"> - <el-date-picker style="width:100%" v-model="Mdata.nextCalibrationDate" format="yyyy-MM-dd" - value-format="yyyy-MM-dd HH:mm:ss" type="date" size="small" placeholder="閫夋嫨鏃ユ湡"> + </el-form-item> + <el-form-item label="涓嬫鏍″噯鏃ユ湡:"> + <el-date-picker + style="width:100%" + v-model="editData.nextCalibrationDate" + format="yyyy-MM-dd" + value-format="yyyy-MM-dd HH:mm:ss" + type="date" + size="small" + placeholder="閫夋嫨鏃ユ湡" + > </el-date-picker> - </el-form-item> --> + </el-form-item> <el-form-item label="璁惧绫诲瀷:"> - <el-select v-model="editData.largeCategory" placeholder="璇烽�夋嫨" size="small" style="width:100%"> - <el-option v-for="item in equipmentList" :key="item.value" :label="item.label" :value="item.value"> + <el-select + v-model="editData.largeCategory" + placeholder="璇烽�夋嫨" + size="small" + style="width:100%" + > + <el-option + v-for="item in equipmentList" + :key="item.value" + :label="item.label" + :value="item.value" + > </el-option> </el-select> </el-form-item> @@ -314,17 +477,41 @@ <el-input v-model="editData.unitPrice" size="small"></el-input> </el-form-item> <el-form-item label="褰撳墠鐘舵��:" prop="deviceStatus"> - <el-select v-model="editData.deviceStatus" placeholder="璇烽�夋嫨" size="small" style="width:100%"> - <el-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value"> + <el-select + v-model="editData.deviceStatus" + placeholder="璇烽�夋嫨" + size="small" + style="width:100%" + > + <el-option + v-for="item in deviceStatusList" + :key="item.value" + :label="item.label" + :value="item.value" + > </el-option> </el-select> </el-form-item> <el-form-item label="鏍″噯鍛ㄦ湡锛堟湀锛�:" prop="calibrationDate"> - <el-input v-model="editData.calibrationDate" size="small"></el-input> + <el-input + v-model="editData.calibrationDate" + size="small" + ></el-input> </el-form-item> <el-form-item label="琚巿鏉冧汉:"> - <el-select v-model="editData.authorizedPerson" multiple placeholder="璇烽�夋嫨" size="small" style="width:100%"> - <el-option v-for="item in responsiblePersonList" :key="item.name" :label="item.name" :value="item.id"> + <el-select + v-model="editData.authorizedPerson" + multiple + placeholder="璇烽�夋嫨" + size="small" + style="width:100%" + > + <el-option + v-for="item in responsiblePersonList" + :key="item.name" + :label="item.name" + :value="item.id" + > </el-option> </el-select> </el-form-item> @@ -340,12 +527,25 @@ </div> --> <div> - <div v-show="editData.imageName" class="picName">{{ editData.imageName }}</div> - <el-upload :action="action" :on-success="handleSuccessUpImg2" :show-file-list="false" - accept='image/jpg,image/jpeg,image/png' :headers="headers" :on-change="beforeUpload" - :on-error="onError" ref='upload' class="avatar-uploader" - > - <img v-if="editData.imageUpload" :src="javaApi + '/img/' + editData.imageUpload" class="avatar"> + <div v-show="editData.imageName" class="picName"> + {{ editData.imageName }} + </div> + <el-upload + :action="action" + :on-success="handleSuccessUpImg2" + :show-file-list="false" + accept="image/jpg,image/jpeg,image/png" + :headers="headers" + :on-change="beforeUpload" + :on-error="onError" + ref="upload" + class="avatar-uploader" + > + <img + v-if="editData.imageUpload" + :src="javaApi + '/img/' + editData.imageUpload" + class="avatar" + /> <i v-else class="el-icon-plus avatar-uploader-icon"></i> </el-upload> </div> @@ -356,11 +556,19 @@ <span slot="footer" class="dialog-footer"> <el-row> <el-button @click="handleClose">鍙� 娑�</el-button> - <el-button type="primary" @click="submitForm" :loading="upLoad">纭� 瀹�</el-button> + <el-button type="primary" @click="submitForm" :loading="upLoad" + >纭� 瀹�</el-button + > </el-row> </span> </el-dialog> - <el-dialog title="娣诲姞璁惧闄勪欢" top="5vh" v-if="dialogVisible1" :visible.sync="dialogVisible1" width="40%"> + <el-dialog + title="娣诲姞璁惧闄勪欢" + top="5vh" + v-if="dialogVisible1" + :visible.sync="dialogVisible1" + width="40%" + > <el-form ref="form" :model="addFile" label-width="120px"> <el-row :gutter="20"> <el-col :span="12"> @@ -373,52 +581,107 @@ </el-col> <el-col :span="12"> <el-form-item label="妗f鍚嶇О锛�"> - <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addFile.name"></el-input> + <el-input + size="small" + placeholder="璇疯緭鍏�" + clearable + v-model="addFile.name" + ></el-input> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="搴撳彿/璧勪骇缂栧彿:"> - <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addFile.number"></el-input> + <el-input + size="small" + placeholder="璇疯緭鍏�" + clearable + v-model="addFile.number" + ></el-input> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="鐗堟湰锛�"> - <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addFile.version"></el-input> + <el-input + size="small" + placeholder="璇疯緭鍏�" + clearable + v-model="addFile.version" + ></el-input> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="浠芥暟锛�"> - <el-input-number v-model="addFile.quantity" controls-position="right" style="width: 100%;" size="small" - :min="0" :max="10"></el-input-number> + <el-input-number + v-model="addFile.quantity" + controls-position="right" + style="width: 100%;" + size="small" + :min="0" + :max="10" + ></el-input-number> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="椤电爜锛�"> - <el-input-number v-model="addFile.pageCount" controls-position="right" style="width: 100%;" size="small" - :min="0" :max="10"></el-input-number> + <el-input-number + v-model="addFile.pageCount" + controls-position="right" + style="width: 100%;" + size="small" + :min="0" + :max="10" + ></el-input-number> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="鎻愪緵鑰咃細"> - <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addFile.provider"></el-input> + <el-input + size="small" + placeholder="璇疯緭鍏�" + clearable + v-model="addFile.provider" + ></el-input> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="褰掓。鏃ユ湡锛�"> - <el-date-picker type="date" style="width:100%" placeholder="璇烽�夋嫨鏃ユ湡" size="small" v-model="addFile.archiveDate" - format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> + <el-date-picker + type="date" + style="width:100%" + placeholder="璇烽�夋嫨鏃ユ湡" + size="small" + v-model="addFile.archiveDate" + format="yyyy-MM-dd" + value-format="yyyy-MM-dd HH:mm:ss" + ></el-date-picker> </el-form-item> </el-col> <el-col :span="24"> <el-form-item label="澶囨敞锛�"> - <el-input type="textarea" :rows="2" size="small" v-model="addFile.comments"></el-input> + <el-input + type="textarea" + :rows="2" + size="small" + v-model="addFile.comments" + ></el-input> </el-form-item> </el-col> <el-col :span="24"> <el-form-item label="闄勪欢锛�" style="float: left;"> - <el-upload class="upload-demo" :action="action" :headers="headers" ref="uploadFile" :on-error="onError" - :on-remove="handleRemove" :on-success="onSuccess" :before-remove="beforeRemove" multiple :limit="1" - :on-exceed="handleExceed" :file-list="fileList"> + <el-upload + class="upload-demo" + :action="action" + :headers="headers" + ref="uploadFile" + :on-error="onError" + :on-remove="handleRemove" + :on-success="onSuccess" + :before-remove="beforeRemove" + multiple + :limit="1" + :on-exceed="handleExceed" + :file-list="fileList" + > <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button> </el-upload> </el-form-item> @@ -427,36 +690,56 @@ </el-form> <span slot="footer" class="dialog-footer"> <el-row> - <el-button @click="dialogVisible1 = false" size="small">鍙� 娑�</el-button> - <el-button type="primary" @click="saveRecord" size="small" :loading="isLoading">{{ isAddFileUpdate == true ? - '鏇存柊' : - '纭� 瀹�' }}</el-button> + <el-button @click="dialogVisible1 = false" size="small" + >鍙� 娑�</el-button + > + <el-button + type="primary" + @click="saveRecord" + size="small" + :loading="isLoading" + >{{ isAddFileUpdate == true ? "鏇存柊" : "纭� 瀹�" }}</el-button + > </el-row> </span> </el-dialog> <el-dialog title="璁惧浜岀淮鐮�" :visible.sync="deviceDialog" - top="5vh" - width="30%"> + top="5vh" + width="30%" + > <div style="width:90%;text-align: right;"> - <el-button type="primary" size="mini" @click="clickGeneratePicture">涓嬭浇鍥剧墖</el-button> - <el-button type="primary" size="mini" @click="labelPrint">鏍囩鎵撳嵃</el-button> + <el-button type="primary" size="mini" @click="clickGeneratePicture" + >涓嬭浇鍥剧墖</el-button + > + <el-button type="primary" size="mini" @click="labelPrint" + >鏍囩鎵撳嵃</el-button + > </div> <div class="device-main" ref="deviceQrCode" id="deviceCode"> - <div class="device-center" > - <p class="device-title">{{Mdata.deviceName}}</p> + <div class="device-center"> + <p class="device-title">{{ Mdata.deviceName }}</p> <div class="device-footer"> <div> - <vueQr class="qr-code" :text="'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code='+Mdata.managementNumber+'&type=device'" :size="200" :margin="10"></vueQr> + <vueQr + class="qr-code" + :text=" + 'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=' + + Mdata.managementNumber + + '&type=device' + " + :size="200" + :margin="10" + ></vueQr> </div> <div class="device-number"> <span class="device-text">璁惧缂栫爜:</span> - <span class="device-text">{{Mdata.managementNumber}}</span> + <span class="device-text">{{ Mdata.managementNumber }}</span> </div> <div class="device-name"> <span class="device-text">璁惧鍨嬪彿:</span> - <span class="device-text">{{Mdata.specificationModel}}</span> + <span class="device-text">{{ Mdata.specificationModel }}</span> </div> </div> </div> @@ -466,20 +749,20 @@ </template> <script> -import { MessageBox } from 'element-ui' -import ValueTable from '../../tool/value-table.vue' -import fileDownload from '../../../util/file' -import vueQr from 'vue-qr' -import PrintJS from 'print-js' -import domtoimage from 'dom-to-image'; -import {isPermission} from '../../../util/auth' +import { MessageBox } from "element-ui"; +import ValueTable from "../../tool/value-table.vue"; +import fileDownload from "../../../util/file"; +import vueQr from "vue-qr"; +import PrintJS from "print-js"; +import domtoimage from "dom-to-image"; +import { isPermission } from "../../../util/auth"; export default { - filters:{ - formaterDateTime(dateTime){ - if(dateTime === undefined || dateTime === null || dateTime === ''){ - return dateTime + filters: { + formaterDateTime(dateTime) { + if (dateTime === undefined || dateTime === null || dateTime === "") { + return dateTime; } - return dateTime.split(" ")[0] + return dateTime.split(" ")[0]; } }, props: { @@ -496,40 +779,40 @@ }, data() { return { - isPermission:isPermission, - deviceDialog: false,//鏌ョ湅璁惧浜岀淮鐮佸脊妗� + isPermission: isPermission, + deviceDialog: false, //鏌ョ湅璁惧浜岀淮鐮佸脊妗� rules1: { deviceName: [ - { required: true, message: '璇疯緭鍏ヤ华鍣ㄥ悕绉�', trigger: 'blur' }, - ], - enDeviceName: [ - { required: true, message: '璇疯緭鍏ヤ华鍣ㄥ悕绉癊N', trigger: 'blur' }, - ], - specificationModel: [ - { required: true, message: '璇疯緭鍏ヨ鏍煎瀷鍙�', trigger: 'blur' }, - ], - managementNumber: [ - { required: true, message: '璇疯緭鍏ョ鐞嗙紪鍙�', trigger: 'blur' }, - ], - activationDate: [ - { required: true, message: '璇疯緭鍏ュ惎鐢ㄦ棩鏈�', trigger: 'blur' }, - ], - deviceStatus: [ - { required: true, message: '璇疯緭鍏ュ綋鍓嶇姸鎬�', trigger: 'blur' }, - ], - calibrationDate: [ - { required: true, message: '璇疯緭鍏ユ牎鍑嗗懆鏈�(鏈�)', trigger: 'blur' }, - ], + { required: true, message: "璇疯緭鍏ヤ华鍣ㄥ悕绉�", trigger: "blur" } + ], + enDeviceName: [ + { required: true, message: "璇疯緭鍏ヤ华鍣ㄥ悕绉癊N", trigger: "blur" } + ], + specificationModel: [ + { required: true, message: "璇疯緭鍏ヨ鏍煎瀷鍙�", trigger: "blur" } + ], + managementNumber: [ + { required: true, message: "璇疯緭鍏ョ鐞嗙紪鍙�", trigger: "blur" } + ], + activationDate: [ + { required: true, message: "璇疯緭鍏ユ牎鍑嗘湁鏁堟湡", trigger: "blur" } + ], + deviceStatus: [ + { required: true, message: "璇疯緭鍏ュ綋鍓嶇姸鎬�", trigger: "blur" } + ], + calibrationDate: [ + { required: true, message: "璇疯緭鍏ユ牎鍑嗗懆鏈�(鏈�)", trigger: "blur" } + ] }, // dateForm: { // }, fileList: [], // 娣诲姞闄勪欢涓婁紶鏂囦欢鍒楄〃 - timeStamp: '', // 缁欏浘鐗囨坊鍔爇ey锛屽湪姣忔鍔犺浇椤甸潰鐨勬椂鍊欐柊寤烘椂闂存埑 + timeStamp: "", // 缁欏浘鐗囨坊鍔爇ey锛屽湪姣忔鍔犺浇椤甸潰鐨勬椂鍊欐柊寤烘椂闂存埑 equipmentManager: [], - formLabelWidth: '100px', + formLabelWidth: "100px", dialogVisible1: false, - recordNumber: '', + recordNumber: "", inLoading: false, // 鎺у埗涓婁紶鎸夐挳鍔犺浇鐘舵�� isLoading: false, // 鎺у埗纭畾鎸夐挳鍔犺浇鐘舵�� formData: {}, @@ -537,17 +820,17 @@ num: 1, //娣诲姞闄勪欢鏁版嵁鏀堕泦 addFile: { - documentType: '', // 缁存姢绫诲瀷 + documentType: "", // 缁存姢绫诲瀷 archiveDate: null, // 褰掓。鏃ユ湡 - name: '', // 妗f鍚嶇О - number: '', // 搴撳彿/璧勪骇缂栧彿 - version: '', // 鐗堟湰 + name: "", // 妗f鍚嶇О + number: "", // 搴撳彿/璧勪骇缂栧彿 + version: "", // 鐗堟湰 quantity: 1, // 浠芥暟 pageCount: 1, // 椤电爜 - provider: '', // 鎻愪緵鑰� + provider: "", // 鎻愪緵鑰� comments: "", // 澶囨敞 fileName: "", // 鏂囦欢鍘熷悕绉� - systemFileName: "", // 绯荤粺鐢熸垚鍚嶇О + systemFileName: "" // 绯荤粺鐢熸垚鍚嶇О }, componentData: { entity: { name: "", orderBy: { field: "id", order: "asc" } }, @@ -555,361 +838,399 @@ }, upIndex: 0, dialogVisible: false, - dialogVisible1: false, - inLoading: false, upLoad: false, responsiblePersonList: [], subordinateDepartmentsList: [], options: [], equipmentList: [], deviceStatusList: [], - props: { multiple: true, emitPath: false, value: 'id', label: 'name' }, + props: { multiple: true, emitPath: false, value: "id", label: "name" }, // 鏀堕泦璁惧妗f鏁版嵁 Mdata: { deviceName: null }, isAddFileUpdate: false, editData: { - authorizedPerson: [], - }, - } + authorizedPerson: [] + } + }; }, computed: { headers() { return { - 'token': sessionStorage.getItem('token') - } + token: sessionStorage.getItem("token") + }; }, action() { - return this.javaApi + this.$api.deviceScope.uploadFile + return this.javaApi + this.$api.deviceScope.uploadFile; } }, mounted() { // 鏀堕泦鏁版嵁 - this.getList(this.clickNodeVal.value) + this.getList(this.clickNodeVal.value); // 鑾峰彇鐩稿叧鏂囨。鐨勬暟鎹� - this.getPage() - this.timeStamp = Date.now() + this.getPage(); + this.timeStamp = Date.now(); }, methods: { - /** + /** * 灏嗛〉闈㈡寚瀹氳妭鐐瑰唴瀹硅浆涓哄浘鐗� * 1.鎷垮埌鎯宠杞崲涓哄浘鐗囩殑鍐呭鑺傜偣DOM锛� * 2.杞崲锛屾嬁鍒拌浆鎹㈠悗鐨刢anvas * 3.杞崲涓哄浘鐗� */ - clickGeneratePicture() { - const _than = this - domtoimage.toPng(_than.$refs.deviceQrCode,{ quality: 1,width:440,}).then(function (dataUrl) { - // 灏嗚浆鎹㈠悗鐨勫浘鍍忔暟鎹瓨鍌ㄤ负 data URL - fileDownload.downloadIamge(dataUrl,_than.Mdata.deviceName) - }); + clickGeneratePicture() { + const _than = this; + domtoimage + .toPng(_than.$refs.deviceQrCode, { quality: 1, width: 440 }) + .then(function(dataUrl) { + // 灏嗚浆鎹㈠悗鐨勫浘鍍忔暟鎹瓨鍌ㄤ负 data URL + fileDownload.downloadIamge(dataUrl, _than.Mdata.deviceName); + }); }, //鎵撳嵃璁惧浜岀淮鐮� - labelPrint(){ + labelPrint() { PrintJS({ - printable: 'deviceCode',//椤甸潰 - type: "html",//鏂囨。绫诲瀷 - maxWidth:360, - css: ['/static/css/device-print.css'], - style: '@page { size: auto; margin: 0mm;}', - targetStyles: ["*"], // 浣跨敤dom鐨勬墍鏈夋牱寮忥紝寰堥噸瑕� - }); + printable: "deviceCode", //椤甸潰 + type: "html", //鏂囨。绫诲瀷 + maxWidth: 360, + css: ["/static/css/device-print.css"], + style: "@page { size: auto; margin: 0mm;}", + targetStyles: ["*"] // 浣跨敤dom鐨勬墍鏈夋牱寮忥紝寰堥噸瑕� + }); }, openFileRevisionDialog() { // 鑾峰彇妗f淇璐熻矗浜轰笅鎷夋鏁版嵁 - this.selectDevicePrincipal() + this.selectDevicePrincipal(); // 鑾峰彇妗f淇鎵�灞為儴闂ㄤ笅鎷夋鏁版嵁 - this.obtainItemParameterList() + this.obtainItemParameterList(); // 鑾峰彇妗f淇璁惧鐘舵�佷笅鎷夋鏁版嵁 - this.selectEnumByCategory() + this.selectEnumByCategory(); // 鑾峰彇妗f淇妫�楠岄」鐩骇鑱斿脊妗嗘暟鎹� - this.getInsProductIds() + this.getInsProductIds(); }, //闄勪欢鍜岀浉鍏虫枃妗d簨浠� handleAttachmentClick(row) { - console.log(row) - if (row.fileName && row.documentType == 0) { - const fileUrl = this.javaApi + '/img/' + row.fileName; - fileDownload.downloadIamge(fileUrl, row.systemFileName) - } else if (row.fileName && row.documentType == 1) { - const url = this.javaApi+'/word/'+ row.fileName - const link = document.createElement('a'); - link.href = url; - link.download = row.fileName; - link.click(); - this.$message.success('涓嬭浇鎴愬姛') + console.log(row); + if (row.fileName) { + let state = /\.(jpg|jpeg|png|gif)$/i.test(row.fileName); + if (state) { + let url = this.javaApi + "/img/" + row.fileName; + fileDownload.downloadIamge(url, row.fileName); + } else { + const url = this.javaApi + "/word/" + row.fileName; + const link = document.createElement("a"); + link.href = url; + link.download = row.fileName; + link.click(); + this.$message.success("涓嬭浇鎴愬姛"); + } } else { - this.$message.warning('鏈笂浼犳枃浠讹紒') + this.$message.warning("鏈笂浼犳枃浠讹紒"); } }, handleViewClick(row) { - this.isAddFileUpdate = true - this.addFile = { ...row } - this.dialogVisible1 = true + this.isAddFileUpdate = true; + this.addFile = { ...row }; + this.dialogVisible1 = true; if (row.fileName) { const obj = Object.assign({ name: row.fileName, url: row.fileName, - status: 'success', - uid: Date.now(), - }) - this.fileList.push(obj) + status: "success", + uid: Date.now() + }); + this.fileList.push(obj); } }, handleDeleteClick(row) { // 鍒犻櫎閫昏緫 - MessageBox.confirm('纭畾瑕佸垹闄よ璁板綍鍚楋紵', '鎻愮ず', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - type: 'warning', - }).then(() => { - this.$axios.delete(this.$api.getDocuments.list + "/" + row.id).then(res => { - if (res.code == 200) { - this.$message.success('鍒犻櫎鎴愬姛') - this.getPage() - } - }) - }).catch(() => { - this.$message.info('宸插彇娑堝垹闄�') + MessageBox.confirm("纭畾瑕佸垹闄よ璁板綍鍚楋紵", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" }) + .then(() => { + this.$axios + .delete(this.$api.getDocuments.list + "/" + row.id) + .then(res => { + if (res.code == 200) { + this.$message.success("鍒犻櫎鎴愬姛"); + this.getPage(); + } + }); + }) + .catch(() => { + this.$message.info("宸插彇娑堝垹闄�"); + }); }, saveRecord() { //杞崲鏁版嵁 - this.addFile.deviceId = this.clickNodeVal.value - let obj= this.addFile.systemFileName - this.addFile.systemFileName = obj.name - this.addFile.fileName = obj.url + this.addFile.deviceId = this.clickNodeVal.value; + let obj = this.addFile.systemFileName; + if (obj) { + this.addFile.systemFileName = obj.name; + this.addFile.fileName = obj.url; + } // 鏇存柊 if (this.isAddFileUpdate) { - this.$axios.put(this.$api.getDocuments.updateDocument, this.addFile, { - headers: { - 'Content-Type': 'application/json' - } - }).then(res => { - if (res.code == 200) { - this.$message.success('鏇存柊鎴愬姛') - this.dialogVisible1 = false; - this.getPage() - } - }) + this.$axios + .put(this.$api.getDocuments.updateDocument, this.addFile, { + headers: { + "Content-Type": "application/json" + } + }) + .then(res => { + if (res.code == 200) { + this.$message.success("鏇存柊鎴愬姛"); + this.dialogVisible1 = false; + this.getPage(); + } + }); } else { // 鏂板 - this.$axios.post(this.$api.getDocuments.list, this.addFile).then(res => { - if (res.code == 200) { - this.$message.success('淇濆瓨鎴愬姛') - this.dialogVisible1 = false; - this.getPage() - } - }) + this.$axios + .post(this.$api.getDocuments.list, this.addFile) + .then(res => { + if (res.code == 200) { + this.$message.success("淇濆瓨鎴愬姛"); + this.dialogVisible1 = false; + this.getPage(); + } + }); } }, onSuccess(response, file, fileList) { if (response.code == 200) { - this.addFile.systemFileName = response.data - this.addFile.fileName = file.name + this.addFile.systemFileName = response.data; + this.addFile.fileName = file.name; } else { - this.$refs.uploadFile.clearFiles() - this.$message.error('涓婁紶澶辫触锛�' + response.message) + this.$refs.uploadFile.clearFiles(); + this.$message.error("涓婁紶澶辫触锛�" + response.message); } }, handleRemove(file, fileList) { - this.deleteFile(this.addFile.systemFileName) + this.deleteFile(this.addFile.systemFileName); }, deleteFile(fileName) { - this.$axios.delete(this.$api.personnel.deleteCNASFile + "?fileName=" + fileName).then(res => { - this.$message.success('鍒犻櫎鎴愬姛锛�') - }) + this.$axios + .delete(this.$api.personnel.deleteCNASFile + "?fileName=" + fileName) + .then(res => { + this.$message.success("鍒犻櫎鎴愬姛锛�"); + }); }, handleExceed(files, fileList) { - this.$message.warning(`褰撳墠闄愬埗閫夋嫨 1 涓枃浠讹紝鏈閫夋嫨浜� ${files.length} 涓枃浠讹紝鍏遍�夋嫨浜� ${files.length + fileList.length} 涓枃浠禶); + this.$message.warning( + `褰撳墠闄愬埗閫夋嫨 1 涓枃浠讹紝鏈閫夋嫨浜� ${ + files.length + } 涓枃浠讹紝鍏遍�夋嫨浜� ${files.length + fileList.length} 涓枃浠禶 + ); }, beforeRemove(file, fileList) { return this.$confirm(`纭畾绉婚櫎 ${file.name}锛焋); }, // 鑾峰彇鐩稿叧鏂囨。鏁版嵁鐨刟pi getPage() { - this.$axios.get(this.$api.getDocuments.get + "/" + this.clickNodeVal.value).then(res => { - if (res.code == 200) - this.tableDataA = res.data - }) + this.$axios + .get(this.$api.getDocuments.get + "/" + this.clickNodeVal.value) + .then(res => { + if (res.code == 200) this.tableDataA = res.data; + }); }, // 鏀堕泦鏁版嵁 getList(id) { this.$axios - .get( - this.$api.deviceScope.selectDeviceByCode + "?id=" + id) + .get(this.$api.deviceScope.selectDeviceByCode + "?id=" + id) .then(res => { // 灏嗗垎绫诲垪琛ㄧ殑淇℃伅瀛樿捣鏉� if (res.code == 200) { this.Mdata = res.data; - this.Mdata.insProductIds = this.Mdata.insProductIds.split(',') - this.Mdata.authorizedPerson = JSON.parse(this.Mdata.authorizedPerson) + this.Mdata.insProductIds = this.Mdata.insProductIds.split(","); + if (this.Mdata.authorizedPerson) { + this.Mdata.authorizedPerson = JSON.parse( + this.Mdata.authorizedPerson + ); + } } }); }, handleData(m) { if (m) { - return m + return m; } else { - return '-' + return "-"; } }, handleClose() { - this.dialogVisible = false + this.dialogVisible = false; }, //鎵撳紑淇妗f寮规 - openEditForm(){ - this.editData = JSON.parse(JSON.stringify(this.Mdata)) - this.$nextTick(()=>{ - this.dialogVisible = true - }) + openEditForm() { + this.editData = JSON.parse(JSON.stringify(this.Mdata)); + this.$nextTick(() => { + this.dialogVisible = true; + }); }, //淇妗f submitForm() { - let flag = true - this.$refs['rules1'].validate((valid) => { + let flag = true; + this.$refs["rules1"].validate(valid => { if (!valid) { flag = false; return false; } }); - this.$refs['rules2'].validate((valid) => { + this.$refs["rules2"].validate(valid => { if (!valid) { flag = false; return false; } }); - this.$refs['ruleForm'].validate((valid) => { + this.$refs["ruleForm"].validate(valid => { if (!valid) { flag = false; return false; } }); - if(!flag) { + if (!flag) { return; } - delete this.editData.nextCalibrationDate - delete this.editData.createTime - delete this.editData.updateTime - delete this.editData.createUser - delete this.editData.updateUser - delete this.editData.orderBy - // this.Mdata.equipmentManager = 1; - - this.editData.userAllow = this.equipmentManager.toString(); - this.editData.insProductIds = Array.isArray(this.editData.insProductIds) - ? this.editData.insProductIds.join(',') - : ''; + delete this.editData.createTime; + delete this.editData.updateTime; + delete this.editData.createUser; + delete this.editData.updateUser; + delete this.editData.orderBy; + const formData = this.HaveJson(this.editData); + formData.userAllow = this.equipmentManager.toString(); + formData.insProductIds = Array.isArray(formData.insProductIds) + ? formData.insProductIds.join(",") + : ""; + if (formData.authorizedPerson.length === 0) { + formData.authorizedPerson = ""; + } else { + formData.authorizedPerson = JSON.stringify(formData.authorizedPerson); + } this.upLoad = true; - this.editData.authorizedPerson = JSON.stringify(this.editData.authorizedPerson) - this.$axios.post(this.$api.deviceScope.upDeviceParameter, this.editData, { - headers: { - 'Content-Type': 'application/json' - } - }).then(res => { - if (res.code === 201) { - this.upLoad = false - return - } - this.$message.success('淇敼鎴愬姛') - this.upLoad = false - this.getList(this.clickNodeVal.value) - this.dialogVisible = false - }).catch(e => { - this.$message.error('淇敼澶辫触') - this.dialogVisible = false - this.upLoad = false - }) + this.$axios + .post(this.$api.deviceScope.upDeviceParameter, formData, { + headers: { + "Content-Type": "application/json" + } + }) + .then(res => { + if (res.code === 201) { + this.upLoad = false; + return; + } + this.$message.success("淇敼鎴愬姛"); + this.upLoad = false; + this.getList(this.clickNodeVal.value); + this.dialogVisible = false; + }) + .catch(e => { + this.$message.error("淇敼澶辫触"); + this.dialogVisible = false; + this.upLoad = false; + }); }, // 瀵煎嚭 handleDownOne(row) { - this.outLoading = true - this.$axios.get(this.$api.deviceCheck.exportDeviceFile + '?deviceId=' + this.clickNodeVal.value, { - responseType: "blob" - }).then(res => { - this.outLoading = false - const blob = new Blob([res], { type: 'application/octet-stream' }); - //灏咮lob 瀵硅薄杞崲鎴愬瓧绗︿覆 - let reader = new FileReader(); - reader.readAsText(blob, 'utf-8'); - reader.onload = () => { - try { - let result = JSON.parse(reader.result); - if (result.message) { - this.$message.error(result.message); - } else { - const url = URL.createObjectURL(blob); - const link = document.createElement('a'); - link.href = url; - link.download = '璁惧妗f鍗�.doc'; - link.click(); - this.$message.success('瀵煎嚭鎴愬姛') - } - } catch (err) { - console.log(err); - const url = URL.createObjectURL(blob); - const link = document.createElement('a'); - link.href = url; - link.download = '璁惧妗f鍗�.doc'; - link.click(); - this.$message.success('瀵煎嚭鎴愬姛') + this.outLoading = true; + this.$axios + .get( + this.$api.deviceCheck.exportDeviceFile + + "?deviceId=" + + this.clickNodeVal.value, + { + responseType: "blob" } - } - }) + ) + .then(res => { + this.outLoading = false; + const blob = new Blob([res], { type: "application/octet-stream" }); + //灏咮lob 瀵硅薄杞崲鎴愬瓧绗︿覆 + let reader = new FileReader(); + reader.readAsText(blob, "utf-8"); + reader.onload = () => { + try { + let result = JSON.parse(reader.result); + if (result.message) { + this.$message.error(result.message); + } else { + const url = URL.createObjectURL(blob); + const link = document.createElement("a"); + link.href = url; + link.download = "璁惧妗f鍗�.doc"; + link.click(); + this.$message.success("瀵煎嚭鎴愬姛"); + } + } catch (err) { + console.log(err); + const url = URL.createObjectURL(blob); + const link = document.createElement("a"); + link.href = url; + link.download = "璁惧妗f鍗�.doc"; + link.click(); + this.$message.success("瀵煎嚭鎴愬姛"); + } + }; + }); }, handleSuccessUpImg2(response) { if (response.code == 200) { this.$nextTick(() => { this.editData.imageUpload = response.data.url; this.editData.imageName = response.data.name; - console.log(this.javaApi + 'img/' + this.editData.imageUpload); - - }) + console.log(this.javaApi + "img/" + this.editData.imageUpload); + }); } }, beforeUpload(file) { if (file.size > 1024 * 1024 * 10) { - this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M'); - this.$refs.upload.clearFiles() + this.$message.error("涓婁紶鏂囦欢涓嶈秴杩�10M"); + this.$refs.upload.clearFiles(); return false; } else { return true; } }, onError(err, file, fileList) { - this.$message.error('涓婁紶澶辫触') - this.$refs.upload.clearFiles() + this.$message.error("涓婁紶澶辫触"); + this.$refs.upload.clearFiles(); }, // 鑾峰彇璐熻矗浜哄垪琛� selectDevicePrincipal() { - this.$axios.post(this.$api.user.selectUserList, this.componentData, { - headers: { - 'Content-Type': 'application/json' - } - }).then(res => { - this.responsiblePersonList = res.data.body.records; - }) + this.$axios + .post(this.$api.user.selectUserList, this.componentData, { + headers: { + "Content-Type": "application/json" + } + }) + .then(res => { + this.responsiblePersonList = res.data.body.records; + }); }, obtainItemParameterList() { - this.$axios.get(this.$api.laboratoryScope.obtainItemParameterList).then(res => { - let data = [] - res.data.forEach(a => { - data.push({ - label: a.laboratoryName, - value: a.id - }) - }) - this.subordinateDepartmentsList = data - }) + this.$axios + .get(this.$api.laboratoryScope.obtainItemParameterList) + .then(res => { + let data = []; + res.data.forEach(a => { + data.push({ + label: a.laboratoryName, + value: a.id + }); + }); + this.subordinateDepartmentsList = data; + }); }, getInsProductIds() { this.$axios.post(this.$api.capacityScope.getInsProduction).then(res => { this.options = res.data.map((m, i) => { m.id = m.name; - return m - }) + return m; + }); this.options.forEach(item => { if (item.children.length == 0) { item.children = null; @@ -922,49 +1243,53 @@ if (n.children && n.children.length == 0) { n.children = null; } - }) + }); } - }) + }); } - }) - }) + }); + }); }, // 鑾峰彇瀛楀吀 selectEnumByCategory() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "璁惧鐘舵��" - }).then(res => { - this.deviceStatusList = res.data - this.deviceStatusList.forEach(a => { - if (!isNaN(a.value)) { - a.value = parseInt(a.value) - } + this.$axios + .post(this.$api.enums.selectEnumByCategory, { + category: "璁惧鐘舵��" }) - }) - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "璁惧鍒嗙被" - }).then(res => { - this.equipmentList = res.data - }) - }, + .then(res => { + this.deviceStatusList = res.data; + this.deviceStatusList.forEach(a => { + if (!isNaN(a.value)) { + a.value = parseInt(a.value); + } + }); + }); + this.$axios + .post(this.$api.enums.selectEnumByCategory, { + category: "璁惧鍒嗙被" + }) + .then(res => { + this.equipmentList = res.data; + }); + } }, watch: { // 鐩戝惉鐐瑰嚮el-tree鐨勬暟鎹紝杩涜鏁版嵁鍒锋柊 clickNodeVal(newVal) { if (newVal.value) { - this.getList(newVal.value) - this.getPage() + this.getList(newVal.value); + this.getPage(); } }, dialogVisible1(newVal) { if (newVal == false) { - this.isAddFileUpdate = false - this.addFile = {} - this.fileList = [] + this.isAddFileUpdate = false; + this.addFile = {}; + this.fileList = []; } } } -} +}; </script> <style scoped> @@ -994,7 +1319,7 @@ display: inline-block; width: 3px; height: 16px; - background: #3A7BFA; + background: #3a7bfa; margin-right: 4px; } @@ -1022,21 +1347,20 @@ .text-ellipsis { display: inline-block; - width: 200px; /* 鎴栬�呮偍鍙互璁剧疆涓�涓叿浣撶殑瀹藉害鍊� */ - box-sizing: border-box; /* 纭繚padding鍜宐order涓嶅奖鍝嶅厓绱犵殑鎬诲搴� */ - white-space: nowrap; /* 绂佹鏂囨湰鎹㈣ */ - text-overflow: ellipsis; /* 浣跨敤鐪佺暐鍙疯〃绀鸿鎴柇鐨勬枃鏈� */ - overflow: hidden; /* 闅愯棌瓒呭嚭瀹瑰櫒鐨勫唴瀹� */ + width: 200px; /* 鎴栬�呮偍鍙互璁剧疆涓�涓叿浣撶殑瀹藉害鍊� */ + box-sizing: border-box; /* 纭繚padding鍜宐order涓嶅奖鍝嶅厓绱犵殑鎬诲搴� */ + white-space: nowrap; /* 绂佹鏂囨湰鎹㈣ */ + text-overflow: ellipsis; /* 浣跨敤鐪佺暐鍙疯〃绀鸿鎴柇鐨勬枃鏈� */ + overflow: hidden; /* 闅愯棌瓒呭嚭瀹瑰櫒鐨勫唴瀹� */ } .form-items { line-height: 34px; - /* display: flex; */ + /* display: flex; */ /* align-items: center; */ margin-left: 15%; font-size: 14px; } - .form-item label { min-width: 130px; @@ -1080,98 +1404,98 @@ } .avatar-uploader .el-upload { - border: 1px dashed #190505; - border-radius: 6px; - cursor: pointer; - position: relative; - overflow: hidden; - } - .avatar-uploader .el-upload:hover { - border-color: #409EFF; - } - .avatar-uploader-icon { - font-size: 28px; - color: #8c939d; - width: 178px; - height: 178px; - line-height: 178px; - text-align: center; - } - .avatar { - width: 178px; - height: 178px; - display: block; - } + border: 1px dashed #190505; + border-radius: 6px; + cursor: pointer; + position: relative; + overflow: hidden; +} +.avatar-uploader .el-upload:hover { + border-color: #409eff; +} +.avatar-uploader-icon { + font-size: 28px; + color: #8c939d; + width: 178px; + height: 178px; + line-height: 178px; + text-align: center; +} +.avatar { + width: 178px; + height: 178px; + display: block; +} -.device-main{ - width:90%; - margin:0px 5%; - height:460px; - padding:25px 0px; +.device-main { + width: 90%; + margin: 0px 5%; + height: 460px; + padding: 25px 0px; background-color: #fff; } -.device-center{ - width:90%; - height:460px; - margin:0px 5%; +.device-center { + width: 90%; + height: 460px; + margin: 0px 5%; border-radius: 15px; background-color: #fff; overflow: hidden; /* box-shadow: 3px 3px 8px 0 rgba(0, 0, 0, 0.3); */ - filter: drop-shadow(0px 5px 5px rgba(0,0,0,0.3)) + filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.3)); } -.device-title{ +.device-title { position: relative; - top:20px; + top: 20px; z-index: 2; font-size: clamp(1rem, 0.582rem + 1.59vw, 1.475rem); font-weight: bold; color: #4f6ab2; width: 100%; - height:90px; + height: 90px; line-height: 100px; text-align: center; } -.device-footer{ - width:100%; - height:420px; +.device-footer { + width: 100%; + height: 420px; background-color: #3361d0; - position: relative + position: relative; } -.device-footer::after{ +.device-footer::after { content: ""; width: 100%; - height: 70px; - position: absolute; - top:-30px; + height: 70px; + position: absolute; + top: -30px; border-radius: 0 0 50% 50%; background-color: #fff; } -.device-footer .qr-code{ +.device-footer .qr-code { width: 55%; height: 200px; position: relative; top: 60px; - left:22.5%; + left: 22.5%; background-color: #fff; border-radius: 15px; overflow: hidden; } -.device-number{ - width:80%; +.device-number { + width: 80%; height: 20px; - margin-left:20%; + margin-left: 20%; position: relative; top: 80px; } -.device-text{ - color:#fff; +.device-text { + color: #fff; font-weight: bold; - font-size:100%; + font-size: 100%; } -.device-name{ - width:80%; - margin-left:20%; +.device-name { + width: 80%; + margin-left: 20%; height: 20px; position: relative; top: 90px; -- Gitblit v1.9.3