Commit 9bb8cd939f30213d7f23c53226ad3065d1f92dcf
1 parent
fe758814
优化采购模块
Showing
19 changed files
with
1619 additions
and
28 deletions
src/api/community/communityApi.js
| @@ -13,8 +13,14 @@ export function _loadCommunityInfo(_param) { | @@ -13,8 +13,14 @@ export function _loadCommunityInfo(_param) { | ||
| 13 | const res = response.data | 13 | const res = response.data |
| 14 | let _communityInfos = res.communitys; | 14 | let _communityInfos = res.communitys; |
| 15 | if (_communityInfos && _communityInfos.length > 0) { | 15 | if (_communityInfos && _communityInfos.length > 0) { |
| 16 | - setCurrentCommunity(_communityInfos[0]); | ||
| 17 | setCommunitys(_communityInfos); | 16 | setCommunitys(_communityInfos); |
| 17 | + let _currentCommunity = getCurrentCommunity() | ||
| 18 | + if(_currentCommunity){ | ||
| 19 | + resolve(res) | ||
| 20 | + return ; | ||
| 21 | + } | ||
| 22 | + | ||
| 23 | + setCurrentCommunity(_communityInfos[0]); | ||
| 18 | if (_param && _param.communityId) { | 24 | if (_param && _param.communityId) { |
| 19 | let _communityId = _param.communityId; | 25 | let _communityId = _param.communityId; |
| 20 | _communityInfos.forEach(_c => { | 26 | _communityInfos.forEach(_c => { |
src/api/resource/resourceDetailApi.js
0 → 100644
| 1 | +import request from '@/utils/request' | ||
| 2 | +import { getCommunityId } from '@/api/community/communityApi' | ||
| 3 | + | ||
| 4 | +// 获取物品详情 | ||
| 5 | +export function getResourceStoreList(params) { | ||
| 6 | + return new Promise((resolve, reject) => { | ||
| 7 | + request({ | ||
| 8 | + url: '/resourceStore.listResourceStores', | ||
| 9 | + method: 'get', | ||
| 10 | + params: { | ||
| 11 | + ...params, | ||
| 12 | + communityId: getCommunityId() | ||
| 13 | + } | ||
| 14 | + }).then(response => { | ||
| 15 | + const res = response.data | ||
| 16 | + resolve(res) | ||
| 17 | + }).catch(error => { | ||
| 18 | + reject(error) | ||
| 19 | + }) | ||
| 20 | + }) | ||
| 21 | +} | ||
| 22 | + | ||
| 23 | +// 获取采购记录 | ||
| 24 | +export function getPurchaseApplyDetailList(params) { | ||
| 25 | + return new Promise((resolve, reject) => { | ||
| 26 | + request({ | ||
| 27 | + url: '/purchaseApplyDetail.listPurchaseApplyDetails', | ||
| 28 | + method: 'get', | ||
| 29 | + params: { | ||
| 30 | + ...params, | ||
| 31 | + communityId: getCommunityId() | ||
| 32 | + } | ||
| 33 | + }).then(response => { | ||
| 34 | + const res = response.data | ||
| 35 | + resolve(res) | ||
| 36 | + }).catch(error => { | ||
| 37 | + reject(error) | ||
| 38 | + }) | ||
| 39 | + }) | ||
| 40 | +} | ||
| 41 | + | ||
| 42 | +// 获取盘点记录 | ||
| 43 | +export function getAssetInventoryList(params) { | ||
| 44 | + return new Promise((resolve, reject) => { | ||
| 45 | + request({ | ||
| 46 | + url: '/assetInventory.listAssetInventory', | ||
| 47 | + method: 'get', | ||
| 48 | + params: { | ||
| 49 | + ...params, | ||
| 50 | + communityId: getCommunityId() | ||
| 51 | + } | ||
| 52 | + }).then(response => { | ||
| 53 | + const res = response.data | ||
| 54 | + resolve(res) | ||
| 55 | + }).catch(error => { | ||
| 56 | + reject(error) | ||
| 57 | + }) | ||
| 58 | + }) | ||
| 59 | +} | ||
| 60 | + | ||
| 61 | +// 获取调拨记录 | ||
| 62 | +export function getAllocationStorehouseList(params) { | ||
| 63 | + return new Promise((resolve, reject) => { | ||
| 64 | + request({ | ||
| 65 | + url: '/resourceStore.listAllocationStorehouses', | ||
| 66 | + method: 'get', | ||
| 67 | + params: { | ||
| 68 | + ...params, | ||
| 69 | + communityId: getCommunityId() | ||
| 70 | + } | ||
| 71 | + }).then(response => { | ||
| 72 | + const res = response.data | ||
| 73 | + resolve(res) | ||
| 74 | + }).catch(error => { | ||
| 75 | + reject(error) | ||
| 76 | + }) | ||
| 77 | + }) | ||
| 78 | +} | ||
| 79 | + | ||
| 80 | +// 获取转赠记录 | ||
| 81 | +export function getAllocationUserStorehouseList(params) { | ||
| 82 | + return new Promise((resolve, reject) => { | ||
| 83 | + request({ | ||
| 84 | + url: '/resourceStore.listAllocationUserStorehouses', | ||
| 85 | + method: 'get', | ||
| 86 | + params: { | ||
| 87 | + ...params, | ||
| 88 | + communityId: getCommunityId() | ||
| 89 | + } | ||
| 90 | + }).then(response => { | ||
| 91 | + const res = response.data | ||
| 92 | + resolve(res) | ||
| 93 | + }).catch(error => { | ||
| 94 | + reject(error) | ||
| 95 | + }) | ||
| 96 | + }) | ||
| 97 | +} | ||
| 98 | + | ||
| 99 | +// 获取使用记录 | ||
| 100 | +export function getResourceStoreUseRecordList(params) { | ||
| 101 | + return new Promise((resolve, reject) => { | ||
| 102 | + request({ | ||
| 103 | + url: '/resourceStore.listResourceStoreUseRecords', | ||
| 104 | + method: 'get', | ||
| 105 | + params: { | ||
| 106 | + ...params, | ||
| 107 | + communityId: getCommunityId() | ||
| 108 | + } | ||
| 109 | + }).then(response => { | ||
| 110 | + const res = response.data | ||
| 111 | + resolve(res) | ||
| 112 | + }).catch(error => { | ||
| 113 | + reject(error) | ||
| 114 | + }) | ||
| 115 | + }) | ||
| 116 | +} | ||
| 0 | \ No newline at end of file | 117 | \ No newline at end of file |
src/api/resource/resourceStoreManageApi.js
| @@ -161,7 +161,7 @@ export function exportData(params) { | @@ -161,7 +161,7 @@ export function exportData(params) { | ||
| 161 | export function importData(data) { | 161 | export function importData(data) { |
| 162 | return new Promise((resolve, reject) => { | 162 | return new Promise((resolve, reject) => { |
| 163 | request({ | 163 | request({ |
| 164 | - url: '/importResourceStore.importData', | 164 | + url: '/callComponent/upload/importResourceStore/importData', |
| 165 | method: 'post', | 165 | method: 'post', |
| 166 | data, | 166 | data, |
| 167 | headers: { | 167 | headers: { |
| @@ -175,7 +175,7 @@ export function importData(data) { | @@ -175,7 +175,7 @@ export function importData(data) { | ||
| 175 | reject(new Error(res.msg || '导入数据失败')) | 175 | reject(new Error(res.msg || '导入数据失败')) |
| 176 | } | 176 | } |
| 177 | }).catch(error => { | 177 | }).catch(error => { |
| 178 | - reject(error) | 178 | + reject(error.response.data) |
| 179 | }) | 179 | }) |
| 180 | }) | 180 | }) |
| 181 | } | 181 | } |
src/components/resource/addResourceStore.vue
| @@ -144,7 +144,7 @@ | @@ -144,7 +144,7 @@ | ||
| 144 | <el-col :span="12"> | 144 | <el-col :span="12"> |
| 145 | <el-form-item :label="$t('resourceStoreManage.uploadImage')"> | 145 | <el-form-item :label="$t('resourceStoreManage.uploadImage')"> |
| 146 | <upload-image-url ref="uploadImage" :image-count="5" | 146 | <upload-image-url ref="uploadImage" :image-count="5" |
| 147 | - @notify-upload-image="handleImageUpload"></upload-image-url> | 147 | + @notifyUploadCoverImage="handleImageUpload"></upload-image-url> |
| 148 | </el-form-item> | 148 | </el-form-item> |
| 149 | </el-col> | 149 | </el-col> |
| 150 | </el-row> | 150 | </el-row> |
| @@ -362,7 +362,7 @@ export default { | @@ -362,7 +362,7 @@ export default { | ||
| 362 | }, | 362 | }, |
| 363 | 363 | ||
| 364 | handleImageUpload(images) { | 364 | handleImageUpload(images) { |
| 365 | - this.formData.photos = images.map(img => img.fileId) | 365 | + this.formData.photos = images |
| 366 | }, | 366 | }, |
| 367 | 367 | ||
| 368 | saveResourceStore() { | 368 | saveResourceStore() { |
src/components/resource/editResourceStore.vue
| @@ -30,7 +30,8 @@ | @@ -30,7 +30,8 @@ | ||
| 30 | <el-select v-model="formData.rstId" style="width:100%" :disabled="formData.shType === '2807'" | 30 | <el-select v-model="formData.rstId" style="width:100%" :disabled="formData.shType === '2807'" |
| 31 | @change="handleSonResourceTypeChange"> | 31 | @change="handleSonResourceTypeChange"> |
| 32 | <el-option :label="$t('resourceStoreManage.selectSecondCategory')" value="" disabled></el-option> | 32 | <el-option :label="$t('resourceStoreManage.selectSecondCategory')" value="" disabled></el-option> |
| 33 | - <el-option v-for="(item, index) in rstIds" :key="index" :label="item.name" :value="item.rstId"></el-option> | 33 | + <el-option v-for="(item, index) in rstIds" :key="index" :label="item.name" |
| 34 | + :value="item.rstId"></el-option> | ||
| 34 | </el-select> | 35 | </el-select> |
| 35 | </el-form-item> | 36 | </el-form-item> |
| 36 | </el-col> | 37 | </el-col> |
| @@ -127,9 +128,9 @@ | @@ -127,9 +128,9 @@ | ||
| 127 | </el-form-item> | 128 | </el-form-item> |
| 128 | </el-col> | 129 | </el-col> |
| 129 | <el-col :span="12"> | 130 | <el-col :span="12"> |
| 130 | - <el-form-item :label="$t('resourceStoreManage.images')"> | 131 | + <el-form-item :label="$t('resourceStoreManage.uploadImage')"> |
| 131 | <upload-image-url ref="uploadImage" :image-count="5" | 132 | <upload-image-url ref="uploadImage" :image-count="5" |
| 132 | - @notify-upload-image="handleImageUpload"></upload-image-url> | 133 | + @notifyUploadCoverImage="handleImageUpload"></upload-image-url> |
| 133 | </el-form-item> | 134 | </el-form-item> |
| 134 | </el-col> | 135 | </el-col> |
| 135 | </el-row> | 136 | </el-row> |
| @@ -143,7 +144,7 @@ | @@ -143,7 +144,7 @@ | ||
| 143 | </template> | 144 | </template> |
| 144 | 145 | ||
| 145 | <script> | 146 | <script> |
| 146 | -import { updateResourceStore ,listStorehouses,listResourceStoreTypes, getResourceStoreType,listResourceStoreSpecifications} from '@/api/resource/resourceStoreManageApi' | 147 | +import { updateResourceStore, listStorehouses, listResourceStoreTypes, getResourceStoreType, listResourceStoreSpecifications } from '@/api/resource/resourceStoreManageApi' |
| 147 | import { getDict, getCommunityId } from '@/api/community/communityApi' | 148 | import { getDict, getCommunityId } from '@/api/community/communityApi' |
| 148 | import UploadImageUrl from '@/components/upload/UploadImageUrl' | 149 | import UploadImageUrl from '@/components/upload/UploadImageUrl' |
| 149 | 150 | ||
| @@ -233,7 +234,7 @@ export default { | @@ -233,7 +234,7 @@ export default { | ||
| 233 | this.formData = { ...row } | 234 | this.formData = { ...row } |
| 234 | this.$nextTick(() => { | 235 | this.$nextTick(() => { |
| 235 | if (this.$refs.uploadImage) { | 236 | if (this.$refs.uploadImage) { |
| 236 | - this.$refs.uploadImage.setPhotos(row.fileUrls || []) | 237 | + this.$refs.uploadImage.setImages(row.fileUrls || []) |
| 237 | } | 238 | } |
| 238 | }) | 239 | }) |
| 239 | this.loadData() | 240 | this.loadData() |
| @@ -271,7 +272,7 @@ export default { | @@ -271,7 +272,7 @@ export default { | ||
| 271 | parentId: '0' | 272 | parentId: '0' |
| 272 | } | 273 | } |
| 273 | const response = await listResourceStoreTypes(params) | 274 | const response = await listResourceStoreTypes(params) |
| 274 | - this.parentRstIds = response || [] | 275 | + this.parentRstIds = response.data || [] |
| 275 | } catch (error) { | 276 | } catch (error) { |
| 276 | console.error('加载物品类型失败:', error) | 277 | console.error('加载物品类型失败:', error) |
| 277 | } | 278 | } |
| @@ -301,7 +302,7 @@ export default { | @@ -301,7 +302,7 @@ export default { | ||
| 301 | flag: "0" | 302 | flag: "0" |
| 302 | } | 303 | } |
| 303 | const response = await listResourceStoreTypes(params) | 304 | const response = await listResourceStoreTypes(params) |
| 304 | - this.rstIds = response || [] | 305 | + this.rstIds = response.data || [] |
| 305 | } catch (error) { | 306 | } catch (error) { |
| 306 | console.error('加载二级分类失败:', error) | 307 | console.error('加载二级分类失败:', error) |
| 307 | } | 308 | } |
| @@ -344,7 +345,7 @@ export default { | @@ -344,7 +345,7 @@ export default { | ||
| 344 | rstId: rstId | 345 | rstId: rstId |
| 345 | } | 346 | } |
| 346 | const response = await listResourceStoreSpecifications(params) | 347 | const response = await listResourceStoreSpecifications(params) |
| 347 | - this.resourceStoreSpecifications = response || [] | 348 | + this.resourceStoreSpecifications = response.data || [] |
| 348 | } catch (error) { | 349 | } catch (error) { |
| 349 | console.error('加载物品规格失败:', error) | 350 | console.error('加载物品规格失败:', error) |
| 350 | } | 351 | } |
| @@ -361,7 +362,7 @@ export default { | @@ -361,7 +362,7 @@ export default { | ||
| 361 | }, | 362 | }, |
| 362 | 363 | ||
| 363 | handleImageUpload(images) { | 364 | handleImageUpload(images) { |
| 364 | - this.formData.fileUrls = images.map(img => ({ fileId: img.fileId, url: img.url })) | 365 | + this.formData.fileUrls = images |
| 365 | }, | 366 | }, |
| 366 | 367 | ||
| 367 | updateResourceStore() { | 368 | updateResourceStore() { |
src/components/resource/importResourceStore.vue
| 1 | <template> | 1 | <template> |
| 2 | <el-dialog :title="$t('resourceStoreManage.importResource')" :visible.sync="dialogVisible" width="40%" | 2 | <el-dialog :title="$t('resourceStoreManage.importResource')" :visible.sync="dialogVisible" width="40%" |
| 3 | :close-on-click-modal="false" @closed="handleClosed"> | 3 | :close-on-click-modal="false" @closed="handleClosed"> |
| 4 | - <el-form ref="importForm" :model="formData" :rules="rules" label-width="120px" label-position="right"> | 4 | + <el-form ref="importForm" :model="formData" :rules="rules" label-width="120px" label-position="right" class="text-left"> |
| 5 | <el-form-item :label="$t('resourceStoreManage.storehouse')" prop="shId"> | 5 | <el-form-item :label="$t('resourceStoreManage.storehouse')" prop="shId"> |
| 6 | <el-select v-model="formData.shId" style="width:100%"> | 6 | <el-select v-model="formData.shId" style="width:100%"> |
| 7 | <el-option :label="$t('resourceStoreManage.selectStorehouse')" value="" disabled></el-option> | 7 | <el-option :label="$t('resourceStoreManage.selectStorehouse')" value="" disabled></el-option> |
| @@ -10,7 +10,7 @@ | @@ -10,7 +10,7 @@ | ||
| 10 | </el-select> | 10 | </el-select> |
| 11 | </el-form-item> | 11 | </el-form-item> |
| 12 | 12 | ||
| 13 | - <el-form-item :label="$t('resourceStoreManage.selectFile')" prop="file"> | 13 | + <el-form-item :label="$t('common.select')" prop="file"> |
| 14 | <el-upload class="upload-demo" action="" :auto-upload="false" :on-change="handleFileChange" | 14 | <el-upload class="upload-demo" action="" :auto-upload="false" :on-change="handleFileChange" |
| 15 | :show-file-list="false"> | 15 | :show-file-list="false"> |
| 16 | <el-button size="small" type="primary"> | 16 | <el-button size="small" type="primary"> |
| @@ -43,7 +43,7 @@ | @@ -43,7 +43,7 @@ | ||
| 43 | </template> | 43 | </template> |
| 44 | 44 | ||
| 45 | <script> | 45 | <script> |
| 46 | -import { importResourceStoreData,listStorehouses } from '@/api/resource/resourceStoreManageApi' | 46 | +import { importData, listStorehouses } from '@/api/resource/resourceStoreManageApi' |
| 47 | import { getCommunityId } from '@/api/community/communityApi' | 47 | import { getCommunityId } from '@/api/community/communityApi' |
| 48 | 48 | ||
| 49 | export default { | 49 | export default { |
| @@ -120,10 +120,14 @@ export default { | @@ -120,10 +120,14 @@ export default { | ||
| 120 | formData.append('shId', this.formData.shId) | 120 | formData.append('shId', this.formData.shId) |
| 121 | formData.append('communityId', this.formData.communityId) | 121 | formData.append('communityId', this.formData.communityId) |
| 122 | 122 | ||
| 123 | - await importResourceStoreData(formData) | ||
| 124 | - this.$message.success(this.$t('resourceStoreManage.importSuccess')) | ||
| 125 | - this.dialogVisible = false | ||
| 126 | - this.$emit('success') | 123 | + const res = await importData(formData).catch(error => { |
| 124 | + this.$message.error(error) | ||
| 125 | + }) | ||
| 126 | + if (res && res.code === 0) { | ||
| 127 | + this.$message.success(this.$t('resourceStoreManage.importSuccess')) | ||
| 128 | + this.dialogVisible = false | ||
| 129 | + this.$emit('success') | ||
| 130 | + } | ||
| 127 | } catch (error) { | 131 | } catch (error) { |
| 128 | console.error('导入物品失败:', error) | 132 | console.error('导入物品失败:', error) |
| 129 | this.$message.error(error.message || this.$t('resourceStoreManage.importFailed')) | 133 | this.$message.error(error.message || this.$t('resourceStoreManage.importFailed')) |
src/components/resource/resourceDetailAllocation.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div class="resource-detail-allocation"> | ||
| 3 | + <el-table | ||
| 4 | + v-loading="loading" | ||
| 5 | + :data="resourceStores" | ||
| 6 | + border | ||
| 7 | + style="width: 100%" | ||
| 8 | + > | ||
| 9 | + <el-table-column | ||
| 10 | + prop="applyId" | ||
| 11 | + :label="$t('resourceDetail.allocation.allocationId')" | ||
| 12 | + align="center" | ||
| 13 | + /> | ||
| 14 | + <el-table-column | ||
| 15 | + :label="$t('resourceDetail.allocation.itemType')" | ||
| 16 | + align="center" | ||
| 17 | + > | ||
| 18 | + <template slot-scope="scope"> | ||
| 19 | + {{ scope.row.parentRstName }} > {{ scope.row.rstName }} | ||
| 20 | + </template> | ||
| 21 | + </el-table-column> | ||
| 22 | + <el-table-column | ||
| 23 | + prop="resName" | ||
| 24 | + :label="$t('resourceDetail.allocation.itemName')" | ||
| 25 | + align="center" | ||
| 26 | + /> | ||
| 27 | + <el-table-column | ||
| 28 | + :label="$t('resourceDetail.allocation.itemSpec')" | ||
| 29 | + align="center" | ||
| 30 | + > | ||
| 31 | + <template slot-scope="scope"> | ||
| 32 | + {{ scope.row.specName || '-' }} | ||
| 33 | + </template> | ||
| 34 | + </el-table-column> | ||
| 35 | + <el-table-column | ||
| 36 | + prop="isFixedName" | ||
| 37 | + :label="$t('resourceDetail.allocation.fixedItem')" | ||
| 38 | + align="center" | ||
| 39 | + /> | ||
| 40 | + <el-table-column | ||
| 41 | + :label="$t('resourceDetail.allocation.originalStock')" | ||
| 42 | + align="center" | ||
| 43 | + > | ||
| 44 | + <template slot-scope="scope"> | ||
| 45 | + {{ scope.row.originalStock }}{{ scope.row.unitCodeName }} | ||
| 46 | + </template> | ||
| 47 | + </el-table-column> | ||
| 48 | + <el-table-column | ||
| 49 | + :label="$t('resourceDetail.allocation.allocationQuantity')" | ||
| 50 | + align="center" | ||
| 51 | + > | ||
| 52 | + <template slot-scope="scope"> | ||
| 53 | + {{ scope.row.stock }}{{ scope.row.applyType == 20000 ? scope.row.miniUnitCodeName : scope.row.unitCodeName }} | ||
| 54 | + </template> | ||
| 55 | + </el-table-column> | ||
| 56 | + <el-table-column | ||
| 57 | + :label="$t('resourceDetail.allocation.sourceWarehouse')" | ||
| 58 | + align="center" | ||
| 59 | + > | ||
| 60 | + <template slot-scope="scope"> | ||
| 61 | + {{ scope.row.applyType == '20000' ? scope.row.startUserName : scope.row.shaName }} | ||
| 62 | + </template> | ||
| 63 | + </el-table-column> | ||
| 64 | + <el-table-column | ||
| 65 | + prop="shzName" | ||
| 66 | + :label="$t('resourceDetail.allocation.targetWarehouse')" | ||
| 67 | + align="center" | ||
| 68 | + /> | ||
| 69 | + <el-table-column | ||
| 70 | + prop="startUserName" | ||
| 71 | + :label="$t('resourceDetail.allocation.applicant')" | ||
| 72 | + align="center" | ||
| 73 | + /> | ||
| 74 | + <el-table-column | ||
| 75 | + prop="remark" | ||
| 76 | + :label="$t('resourceDetail.allocation.remark')" | ||
| 77 | + align="center" | ||
| 78 | + /> | ||
| 79 | + <el-table-column | ||
| 80 | + prop="applyTypeName" | ||
| 81 | + :label="$t('resourceDetail.allocation.allocationType')" | ||
| 82 | + align="center" | ||
| 83 | + /> | ||
| 84 | + <el-table-column | ||
| 85 | + prop="stateName" | ||
| 86 | + :label="$t('resourceDetail.allocation.status')" | ||
| 87 | + align="center" | ||
| 88 | + /> | ||
| 89 | + <el-table-column | ||
| 90 | + prop="createTime" | ||
| 91 | + :label="$t('resourceDetail.allocation.createTime')" | ||
| 92 | + align="center" | ||
| 93 | + /> | ||
| 94 | + </el-table> | ||
| 95 | + | ||
| 96 | + <el-pagination | ||
| 97 | + :current-page.sync="page.current" | ||
| 98 | + :page-sizes="[10, 20, 30, 50]" | ||
| 99 | + :page-size="page.size" | ||
| 100 | + :total="page.total" | ||
| 101 | + layout="total, sizes, prev, pager, next, jumper" | ||
| 102 | + @size-change="handleSizeChange" | ||
| 103 | + @current-change="handleCurrentChange" | ||
| 104 | + /> | ||
| 105 | + </div> | ||
| 106 | +</template> | ||
| 107 | + | ||
| 108 | +<script> | ||
| 109 | +import { getAllocationStorehouseList } from '@/api/resource/resourceDetailApi' | ||
| 110 | +import { getCommunityId } from '@/api/community/communityApi' | ||
| 111 | + | ||
| 112 | +export default { | ||
| 113 | + name: 'ResourceDetailAllocation', | ||
| 114 | + data() { | ||
| 115 | + return { | ||
| 116 | + loading: false, | ||
| 117 | + resourceStores: [], | ||
| 118 | + page: { | ||
| 119 | + current: 1, | ||
| 120 | + size: 10, | ||
| 121 | + total: 0 | ||
| 122 | + }, | ||
| 123 | + resId: '', | ||
| 124 | + communityId: '' | ||
| 125 | + } | ||
| 126 | + }, | ||
| 127 | + created() { | ||
| 128 | + this.communityId = getCommunityId() | ||
| 129 | + }, | ||
| 130 | + methods: { | ||
| 131 | + async loadData(params) { | ||
| 132 | + this.resId = params.resId | ||
| 133 | + await this.getList() | ||
| 134 | + }, | ||
| 135 | + async getList() { | ||
| 136 | + try { | ||
| 137 | + this.loading = true | ||
| 138 | + const { data, total } = await getAllocationStorehouseList({ | ||
| 139 | + resId: this.resId, | ||
| 140 | + page: this.page.current, | ||
| 141 | + row: this.page.size, | ||
| 142 | + communityId: this.communityId | ||
| 143 | + }) | ||
| 144 | + this.resourceStores = data | ||
| 145 | + this.page.total = total | ||
| 146 | + } catch (error) { | ||
| 147 | + console.error('Failed to load allocation details:', error) | ||
| 148 | + } finally { | ||
| 149 | + this.loading = false | ||
| 150 | + } | ||
| 151 | + }, | ||
| 152 | + handleSizeChange(val) { | ||
| 153 | + this.page.size = val | ||
| 154 | + this.getList() | ||
| 155 | + }, | ||
| 156 | + handleCurrentChange(val) { | ||
| 157 | + this.page.current = val | ||
| 158 | + this.getList() | ||
| 159 | + } | ||
| 160 | + } | ||
| 161 | +} | ||
| 162 | +</script> | ||
| 163 | + | ||
| 164 | +<style lang="scss" scoped> | ||
| 165 | +.resource-detail-allocation { | ||
| 166 | + padding: 20px; | ||
| 167 | + | ||
| 168 | + .el-pagination { | ||
| 169 | + margin-top: 20px; | ||
| 170 | + text-align: right; | ||
| 171 | + } | ||
| 172 | +} | ||
| 173 | +</style> | ||
| 0 | \ No newline at end of file | 174 | \ No newline at end of file |
src/components/resource/resourceDetailAllocationUser.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div class="resource-detail-allocation-user"> | ||
| 3 | + <el-table | ||
| 4 | + v-loading="loading" | ||
| 5 | + :data="allocationUserStorehouses" | ||
| 6 | + border | ||
| 7 | + style="width: 100%" | ||
| 8 | + > | ||
| 9 | + <el-table-column | ||
| 10 | + prop="ausId" | ||
| 11 | + :label="$t('resourceDetail.allocationUser.id')" | ||
| 12 | + align="center" | ||
| 13 | + /> | ||
| 14 | + <el-table-column | ||
| 15 | + :label="$t('resourceDetail.allocationUser.itemType')" | ||
| 16 | + align="center" | ||
| 17 | + > | ||
| 18 | + <template slot-scope="scope"> | ||
| 19 | + {{ scope.row.parentRstName }} > {{ scope.row.rstName }} | ||
| 20 | + </template> | ||
| 21 | + </el-table-column> | ||
| 22 | + <el-table-column | ||
| 23 | + prop="resName" | ||
| 24 | + :label="$t('resourceDetail.allocationUser.itemName')" | ||
| 25 | + align="center" | ||
| 26 | + /> | ||
| 27 | + <el-table-column | ||
| 28 | + :label="$t('resourceDetail.allocationUser.itemSpec')" | ||
| 29 | + align="center" | ||
| 30 | + > | ||
| 31 | + <template slot-scope="scope"> | ||
| 32 | + {{ scope.row.specName || '-' }} | ||
| 33 | + </template> | ||
| 34 | + </el-table-column> | ||
| 35 | + <el-table-column | ||
| 36 | + prop="isFixedName" | ||
| 37 | + :label="$t('resourceDetail.allocationUser.fixedItem')" | ||
| 38 | + align="center" | ||
| 39 | + /> | ||
| 40 | + <el-table-column | ||
| 41 | + prop="startUserName" | ||
| 42 | + :label="$t('resourceDetail.allocationUser.transferUser')" | ||
| 43 | + align="center" | ||
| 44 | + /> | ||
| 45 | + <el-table-column | ||
| 46 | + prop="acceptUserName" | ||
| 47 | + :label="$t('resourceDetail.allocationUser.transferTarget')" | ||
| 48 | + align="center" | ||
| 49 | + /> | ||
| 50 | + <el-table-column | ||
| 51 | + :label="$t('resourceDetail.allocationUser.originalStock')" | ||
| 52 | + align="center" | ||
| 53 | + > | ||
| 54 | + <template slot-scope="scope"> | ||
| 55 | + {{ scope.row.stock }}{{ scope.row.unitCodeName }} | ||
| 56 | + </template> | ||
| 57 | + </el-table-column> | ||
| 58 | + <el-table-column | ||
| 59 | + :label="$t('resourceDetail.allocationUser.transferQuantity')" | ||
| 60 | + align="center" | ||
| 61 | + > | ||
| 62 | + <template slot-scope="scope"> | ||
| 63 | + {{ scope.row.giveQuantity }}{{ scope.row.miniUnitCodeName }} | ||
| 64 | + </template> | ||
| 65 | + </el-table-column> | ||
| 66 | + <el-table-column | ||
| 67 | + prop="createTime" | ||
| 68 | + :label="$t('resourceDetail.allocationUser.createTime')" | ||
| 69 | + align="center" | ||
| 70 | + /> | ||
| 71 | + <el-table-column | ||
| 72 | + prop="remark" | ||
| 73 | + :label="$t('resourceDetail.allocationUser.remark')" | ||
| 74 | + align="center" | ||
| 75 | + /> | ||
| 76 | + </el-table> | ||
| 77 | + | ||
| 78 | + <el-pagination | ||
| 79 | + :current-page.sync="page.current" | ||
| 80 | + :page-sizes="[10, 20, 30, 50]" | ||
| 81 | + :page-size="page.size" | ||
| 82 | + :total="page.total" | ||
| 83 | + layout="total, sizes, prev, pager, next, jumper" | ||
| 84 | + @size-change="handleSizeChange" | ||
| 85 | + @current-change="handleCurrentChange" | ||
| 86 | + /> | ||
| 87 | + </div> | ||
| 88 | +</template> | ||
| 89 | + | ||
| 90 | +<script> | ||
| 91 | +import { getAllocationUserStorehouseList } from '@/api/resource/resourceDetailApi' | ||
| 92 | +import { getCommunityId } from '@/api/community/communityApi' | ||
| 93 | + | ||
| 94 | +export default { | ||
| 95 | + name: 'ResourceDetailAllocationUser', | ||
| 96 | + data() { | ||
| 97 | + return { | ||
| 98 | + loading: false, | ||
| 99 | + allocationUserStorehouses: [], | ||
| 100 | + page: { | ||
| 101 | + current: 1, | ||
| 102 | + size: 10, | ||
| 103 | + total: 0 | ||
| 104 | + }, | ||
| 105 | + resId: '', | ||
| 106 | + communityId: '' | ||
| 107 | + } | ||
| 108 | + }, | ||
| 109 | + created() { | ||
| 110 | + this.communityId = getCommunityId() | ||
| 111 | + }, | ||
| 112 | + methods: { | ||
| 113 | + async loadData(params) { | ||
| 114 | + this.resId = params.resId | ||
| 115 | + await this.getList() | ||
| 116 | + }, | ||
| 117 | + async getList() { | ||
| 118 | + try { | ||
| 119 | + this.loading = true | ||
| 120 | + const { data, total } = await getAllocationUserStorehouseList({ | ||
| 121 | + resId: this.resId, | ||
| 122 | + page: this.page.current, | ||
| 123 | + row: this.page.size, | ||
| 124 | + communityId: this.communityId | ||
| 125 | + }) | ||
| 126 | + this.allocationUserStorehouses = data | ||
| 127 | + this.page.total = total | ||
| 128 | + } catch (error) { | ||
| 129 | + console.error('Failed to load allocation user details:', error) | ||
| 130 | + } finally { | ||
| 131 | + this.loading = false | ||
| 132 | + } | ||
| 133 | + }, | ||
| 134 | + handleSizeChange(val) { | ||
| 135 | + this.page.size = val | ||
| 136 | + this.getList() | ||
| 137 | + }, | ||
| 138 | + handleCurrentChange(val) { | ||
| 139 | + this.page.current = val | ||
| 140 | + this.getList() | ||
| 141 | + } | ||
| 142 | + } | ||
| 143 | +} | ||
| 144 | +</script> | ||
| 145 | + | ||
| 146 | +<style lang="scss" scoped> | ||
| 147 | +.resource-detail-allocation-user { | ||
| 148 | + padding: 20px; | ||
| 149 | + | ||
| 150 | + .el-pagination { | ||
| 151 | + margin-top: 20px; | ||
| 152 | + text-align: right; | ||
| 153 | + } | ||
| 154 | +} | ||
| 155 | +</style> | ||
| 0 | \ No newline at end of file | 156 | \ No newline at end of file |
src/components/resource/resourceDetailInventory.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div class="resource-detail-inventory"> | ||
| 3 | + <el-table | ||
| 4 | + v-loading="loading" | ||
| 5 | + :data="assetInventorys" | ||
| 6 | + border | ||
| 7 | + style="width: 100%" | ||
| 8 | + > | ||
| 9 | + <el-table-column | ||
| 10 | + prop="aiId" | ||
| 11 | + :label="$t('resourceDetail.inventory.inventoryId')" | ||
| 12 | + align="center" | ||
| 13 | + /> | ||
| 14 | + <el-table-column | ||
| 15 | + prop="name" | ||
| 16 | + :label="$t('resourceDetail.inventory.inventoryName')" | ||
| 17 | + align="center" | ||
| 18 | + /> | ||
| 19 | + <el-table-column | ||
| 20 | + prop="invTime" | ||
| 21 | + :label="$t('resourceDetail.inventory.inventoryTime')" | ||
| 22 | + align="center" | ||
| 23 | + /> | ||
| 24 | + <el-table-column | ||
| 25 | + prop="shName" | ||
| 26 | + :label="$t('resourceDetail.inventory.warehouse')" | ||
| 27 | + align="center" | ||
| 28 | + /> | ||
| 29 | + <el-table-column | ||
| 30 | + prop="staffName" | ||
| 31 | + :label="$t('resourceDetail.inventory.inventoryPerson')" | ||
| 32 | + align="center" | ||
| 33 | + /> | ||
| 34 | + <el-table-column | ||
| 35 | + prop="stateName" | ||
| 36 | + :label="$t('resourceDetail.inventory.status')" | ||
| 37 | + align="center" | ||
| 38 | + /> | ||
| 39 | + <el-table-column | ||
| 40 | + prop="createTime" | ||
| 41 | + :label="$t('resourceDetail.inventory.createTime')" | ||
| 42 | + align="center" | ||
| 43 | + /> | ||
| 44 | + <el-table-column | ||
| 45 | + :label="$t('common.operation')" | ||
| 46 | + align="center" | ||
| 47 | + width="120" | ||
| 48 | + > | ||
| 49 | + <template slot-scope="scope"> | ||
| 50 | + <el-button | ||
| 51 | + type="text" | ||
| 52 | + size="small" | ||
| 53 | + @click="openDetail(scope.row)" | ||
| 54 | + > | ||
| 55 | + {{ $t('common.detail') }} | ||
| 56 | + </el-button> | ||
| 57 | + </template> | ||
| 58 | + </el-table-column> | ||
| 59 | + </el-table> | ||
| 60 | + | ||
| 61 | + <el-pagination | ||
| 62 | + :current-page.sync="page.current" | ||
| 63 | + :page-sizes="[10, 20, 30, 50]" | ||
| 64 | + :page-size="page.size" | ||
| 65 | + :total="page.total" | ||
| 66 | + layout="total, sizes, prev, pager, next, jumper" | ||
| 67 | + @size-change="handleSizeChange" | ||
| 68 | + @current-change="handleCurrentChange" | ||
| 69 | + /> | ||
| 70 | + </div> | ||
| 71 | +</template> | ||
| 72 | + | ||
| 73 | +<script> | ||
| 74 | +import { getAssetInventoryList } from '@/api/resource/resourceDetailApi' | ||
| 75 | +import { getCommunityId } from '@/api/community/communityApi' | ||
| 76 | + | ||
| 77 | +export default { | ||
| 78 | + name: 'ResourceDetailInventory', | ||
| 79 | + data() { | ||
| 80 | + return { | ||
| 81 | + loading: false, | ||
| 82 | + assetInventorys: [], | ||
| 83 | + page: { | ||
| 84 | + current: 1, | ||
| 85 | + size: 10, | ||
| 86 | + total: 0 | ||
| 87 | + }, | ||
| 88 | + resId: '', | ||
| 89 | + communityId: '' | ||
| 90 | + } | ||
| 91 | + }, | ||
| 92 | + created() { | ||
| 93 | + this.communityId = getCommunityId() | ||
| 94 | + }, | ||
| 95 | + methods: { | ||
| 96 | + async loadData(params) { | ||
| 97 | + this.resId = params.resId | ||
| 98 | + await this.getList() | ||
| 99 | + }, | ||
| 100 | + async getList() { | ||
| 101 | + try { | ||
| 102 | + this.loading = true | ||
| 103 | + const { data, total } = await getAssetInventoryList({ | ||
| 104 | + resId: this.resId, | ||
| 105 | + page: this.page.current, | ||
| 106 | + row: this.page.size, | ||
| 107 | + communityId: this.communityId | ||
| 108 | + }) | ||
| 109 | + this.assetInventorys = data | ||
| 110 | + this.page.total = total | ||
| 111 | + } catch (error) { | ||
| 112 | + console.error('Failed to load inventory details:', error) | ||
| 113 | + } finally { | ||
| 114 | + this.loading = false | ||
| 115 | + } | ||
| 116 | + }, | ||
| 117 | + openDetail(row) { | ||
| 118 | + this.$router.push({ | ||
| 119 | + path: '/pages/property/assetInventoryInStock', | ||
| 120 | + query: { aiId: row.aiId } | ||
| 121 | + }) | ||
| 122 | + }, | ||
| 123 | + handleSizeChange(val) { | ||
| 124 | + this.page.size = val | ||
| 125 | + this.getList() | ||
| 126 | + }, | ||
| 127 | + handleCurrentChange(val) { | ||
| 128 | + this.page.current = val | ||
| 129 | + this.getList() | ||
| 130 | + } | ||
| 131 | + } | ||
| 132 | +} | ||
| 133 | +</script> | ||
| 134 | + | ||
| 135 | +<style lang="scss" scoped> | ||
| 136 | +.resource-detail-inventory { | ||
| 137 | + padding: 20px; | ||
| 138 | + | ||
| 139 | + .el-pagination { | ||
| 140 | + margin-top: 20px; | ||
| 141 | + text-align: right; | ||
| 142 | + } | ||
| 143 | +} | ||
| 144 | +</style> | ||
| 0 | \ No newline at end of file | 145 | \ No newline at end of file |
src/components/resource/resourceDetailItemOut.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div class="resource-detail-item-out"> | ||
| 3 | + <el-table v-loading="loading" :data="purchaseApplyDetails" border style="width: 100%"> | ||
| 4 | + <el-table-column prop="applyOrderId" :label="$t('resourceDetail.itemOut.applyOrderId')" align="center" /> | ||
| 5 | + <el-table-column prop="userName" :label="$t('resourceDetail.itemOut.applicant')" align="center" /> | ||
| 6 | + <el-table-column prop="endUserName" :label="$t('resourceDetail.itemOut.endUser')" align="center" /> | ||
| 7 | + <el-table-column :label="$t('resourceDetail.itemOut.itemType')" align="center"> | ||
| 8 | + <template slot-scope="scope"> | ||
| 9 | + {{ scope.row.parentRstName }} > {{ scope.row.rstName }} | ||
| 10 | + </template> | ||
| 11 | + </el-table-column> | ||
| 12 | + <el-table-column prop="resName" :label="$t('resourceDetail.itemOut.itemName')" align="center" /> | ||
| 13 | + <el-table-column :label="$t('resourceDetail.itemOut.itemSpec')" align="center"> | ||
| 14 | + <template slot-scope="scope"> | ||
| 15 | + {{ scope.row.specName || '-' }} | ||
| 16 | + </template> | ||
| 17 | + </el-table-column> | ||
| 18 | + <el-table-column prop="isFixedName" :label="$t('resourceDetail.itemOut.fixedItem')" align="center" /> | ||
| 19 | + <el-table-column :label="$t('resourceDetail.itemOut.supplier')" align="center"> | ||
| 20 | + <template slot-scope="scope"> | ||
| 21 | + {{ scope.row.supplierName || '-' }} | ||
| 22 | + </template> | ||
| 23 | + </el-table-column> | ||
| 24 | + <el-table-column prop="shName" :label="$t('resourceDetail.itemOut.warehouse')" align="center" /> | ||
| 25 | + <el-table-column :label="$t('resourceDetail.itemOut.applyQuantity')" align="center"> | ||
| 26 | + <template slot-scope="scope"> | ||
| 27 | + {{ scope.row.quantity }}{{ scope.row.unitCodeName || '' }} | ||
| 28 | + </template> | ||
| 29 | + </el-table-column> | ||
| 30 | + <el-table-column :label="$t('resourceDetail.itemOut.quantity')" align="center"> | ||
| 31 | + <template slot-scope="scope"> | ||
| 32 | + {{ scope.row.purchaseQuantity ? scope.row.purchaseQuantity + scope.row.unitCodeName : '-' }} | ||
| 33 | + </template> | ||
| 34 | + </el-table-column> | ||
| 35 | + <el-table-column :label="$t('resourceDetail.itemOut.purchasePrice')" align="center"> | ||
| 36 | + <template slot-scope="scope"> | ||
| 37 | + ¥{{ scope.row.price ? scope.row.price : '0.00' }} | ||
| 38 | + </template> | ||
| 39 | + </el-table-column> | ||
| 40 | + <el-table-column :label="$t('resourceDetail.itemOut.totalPrice')" align="center"> | ||
| 41 | + <template slot-scope="scope"> | ||
| 42 | + {{ scope.row.totalApplyPrice }} | ||
| 43 | + </template> | ||
| 44 | + </el-table-column> | ||
| 45 | + <el-table-column :label="$t('resourceDetail.itemOut.remark')" align="center"> | ||
| 46 | + <template slot-scope="scope"> | ||
| 47 | + {{ scope.row.remark }} | ||
| 48 | + <el-button v-if="scope.row.purchaseRemark" type="text" icon="el-icon-info" | ||
| 49 | + @click="viewPurchaseRemark(scope.row)" /> | ||
| 50 | + </template> | ||
| 51 | + </el-table-column> | ||
| 52 | + <el-table-column prop="stateName" :label="$t('resourceDetail.itemOut.status')" align="center" /> | ||
| 53 | + <el-table-column prop="createTime" :label="$t('resourceDetail.itemOut.createTime')" align="center" /> | ||
| 54 | + </el-table> | ||
| 55 | + | ||
| 56 | + <el-pagination :current-page.sync="page.current" :page-sizes="[10, 20, 30, 50]" :page-size="page.size" | ||
| 57 | + :total="page.total" layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" | ||
| 58 | + @current-change="handleCurrentChange" /> | ||
| 59 | + </div> | ||
| 60 | +</template> | ||
| 61 | + | ||
| 62 | +<script> | ||
| 63 | +import { getPurchaseApplyDetailList } from '@/api/resource/resourceDetailApi' | ||
| 64 | +import { getCommunityId } from '@/api/community/communityApi' | ||
| 65 | + | ||
| 66 | +export default { | ||
| 67 | + name: 'ResourceDetailItemOut', | ||
| 68 | + data() { | ||
| 69 | + return { | ||
| 70 | + loading: false, | ||
| 71 | + purchaseApplyDetails: [], | ||
| 72 | + page: { | ||
| 73 | + current: 1, | ||
| 74 | + size: 10, | ||
| 75 | + total: 0 | ||
| 76 | + }, | ||
| 77 | + resId: '', | ||
| 78 | + communityId: '' | ||
| 79 | + } | ||
| 80 | + }, | ||
| 81 | + created() { | ||
| 82 | + this.communityId = getCommunityId() | ||
| 83 | + }, | ||
| 84 | + methods: { | ||
| 85 | + async loadData(params) { | ||
| 86 | + this.resId = params.resId | ||
| 87 | + await this.getList() | ||
| 88 | + }, | ||
| 89 | + async getList() { | ||
| 90 | + try { | ||
| 91 | + this.loading = true | ||
| 92 | + const { purchaseApplyDetails, total } = await getPurchaseApplyDetailList({ | ||
| 93 | + resId: this.resId, | ||
| 94 | + resOrderType: 20000, | ||
| 95 | + page: this.page.current, | ||
| 96 | + row: this.page.size, | ||
| 97 | + communityId: this.communityId | ||
| 98 | + }) | ||
| 99 | + this.purchaseApplyDetails = purchaseApplyDetails.map(item => { | ||
| 100 | + item.purchaseQuantity = item.purchaseQuantity || 0 | ||
| 101 | + item.price = item.price || 0 | ||
| 102 | + item.totalApplyPrice = (item.purchaseQuantity * item.price).toFixed(2) | ||
| 103 | + return item | ||
| 104 | + }) | ||
| 105 | + this.page.total = total | ||
| 106 | + } catch (error) { | ||
| 107 | + console.error('Failed to load item out details:', error) | ||
| 108 | + } finally { | ||
| 109 | + this.loading = false | ||
| 110 | + } | ||
| 111 | + }, | ||
| 112 | + viewPurchaseRemark(row) { | ||
| 113 | + this.$alert(row.purchaseRemark, this.$t('resourceDetail.itemOut.remark'), { | ||
| 114 | + confirmButtonText: this.$t('common.confirm') | ||
| 115 | + }) | ||
| 116 | + }, | ||
| 117 | + handleSizeChange(val) { | ||
| 118 | + this.page.size = val | ||
| 119 | + this.getList() | ||
| 120 | + }, | ||
| 121 | + handleCurrentChange(val) { | ||
| 122 | + this.page.current = val | ||
| 123 | + this.getList() | ||
| 124 | + } | ||
| 125 | + } | ||
| 126 | +} | ||
| 127 | +</script> | ||
| 128 | + | ||
| 129 | +<style lang="scss" scoped> | ||
| 130 | +.resource-detail-item-out { | ||
| 131 | + padding: 20px; | ||
| 132 | + | ||
| 133 | + .el-pagination { | ||
| 134 | + margin-top: 20px; | ||
| 135 | + text-align: right; | ||
| 136 | + } | ||
| 137 | +} | ||
| 138 | +</style> | ||
| 0 | \ No newline at end of file | 139 | \ No newline at end of file |
src/components/resource/resourceDetailPurchase.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div class="resource-detail-purchase"> | ||
| 3 | + <el-table v-loading="loading" :data="purchaseApplyDetails" border style="width: 100%"> | ||
| 4 | + <el-table-column prop="applyOrderId" :label="$t('resourceDetail.purchase.applyOrderId')" align="center" /> | ||
| 5 | + <el-table-column prop="userName" :label="$t('resourceDetail.purchase.applicant')" align="center" /> | ||
| 6 | + <el-table-column prop="endUserName" :label="$t('resourceDetail.purchase.endUser')" align="center" /> | ||
| 7 | + <el-table-column :label="$t('resourceDetail.purchase.itemType')" align="center"> | ||
| 8 | + <template slot-scope="scope"> | ||
| 9 | + {{ scope.row.parentRstName }} > {{ scope.row.rstName }} | ||
| 10 | + </template> | ||
| 11 | + </el-table-column> | ||
| 12 | + <el-table-column prop="resName" :label="$t('resourceDetail.purchase.itemName')" align="center" /> | ||
| 13 | + <el-table-column :label="$t('resourceDetail.purchase.itemSpec')" align="center"> | ||
| 14 | + <template slot-scope="scope"> | ||
| 15 | + {{ scope.row.specName || '-' }} | ||
| 16 | + </template> | ||
| 17 | + </el-table-column> | ||
| 18 | + <el-table-column prop="isFixedName" :label="$t('resourceDetail.purchase.fixedItem')" align="center" /> | ||
| 19 | + <el-table-column :label="$t('resourceDetail.purchase.supplier')" align="center"> | ||
| 20 | + <template slot-scope="scope"> | ||
| 21 | + {{ scope.row.supplierName || '-' }} | ||
| 22 | + </template> | ||
| 23 | + </el-table-column> | ||
| 24 | + <el-table-column prop="shName" :label="$t('resourceDetail.purchase.warehouse')" align="center" /> | ||
| 25 | + <el-table-column :label="$t('resourceDetail.purchase.applyQuantity')" align="center"> | ||
| 26 | + <template slot-scope="scope"> | ||
| 27 | + {{ scope.row.quantity }}{{ scope.row.unitCodeName || '' }} | ||
| 28 | + </template> | ||
| 29 | + </el-table-column> | ||
| 30 | + <el-table-column :label="$t('resourceDetail.purchase.actualQuantity')" align="center"> | ||
| 31 | + <template slot-scope="scope"> | ||
| 32 | + {{ scope.row.purchaseQuantity ? scope.row.purchaseQuantity + scope.row.unitCodeName : '-' }} | ||
| 33 | + </template> | ||
| 34 | + </el-table-column> | ||
| 35 | + <el-table-column :label="$t('resourceDetail.purchase.purchasePrice')" align="center"> | ||
| 36 | + <template slot-scope="scope"> | ||
| 37 | + ¥{{ scope.row.price ? scope.row.price : '0.00' }} | ||
| 38 | + </template> | ||
| 39 | + </el-table-column> | ||
| 40 | + <el-table-column :label="$t('resourceDetail.purchase.totalPrice')" align="center"> | ||
| 41 | + <template slot-scope="scope"> | ||
| 42 | + {{ scope.row.totalPrice }} | ||
| 43 | + </template> | ||
| 44 | + </el-table-column> | ||
| 45 | + <el-table-column :label="$t('resourceDetail.purchase.remark')" align="center"> | ||
| 46 | + <template slot-scope="scope"> | ||
| 47 | + {{ scope.row.remark }} | ||
| 48 | + <el-button v-if="scope.row.purchaseRemark" type="text" icon="el-icon-info" | ||
| 49 | + @click="viewPurchaseRemark(scope.row)" /> | ||
| 50 | + </template> | ||
| 51 | + </el-table-column> | ||
| 52 | + <el-table-column prop="stateName" :label="$t('resourceDetail.purchase.status')" align="center" /> | ||
| 53 | + <el-table-column prop="createTime" :label="$t('resourceDetail.purchase.createTime')" align="center" /> | ||
| 54 | + </el-table> | ||
| 55 | + | ||
| 56 | + <el-pagination :current-page.sync="page.current" :page-sizes="[10, 20, 30, 50]" :page-size="page.size" | ||
| 57 | + :total="page.total" layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" | ||
| 58 | + @current-change="handleCurrentChange" /> | ||
| 59 | + </div> | ||
| 60 | +</template> | ||
| 61 | + | ||
| 62 | +<script> | ||
| 63 | +import { getPurchaseApplyDetailList } from '@/api/resource/resourceDetailApi' | ||
| 64 | +import { getCommunityId } from '@/api/community/communityApi' | ||
| 65 | + | ||
| 66 | +export default { | ||
| 67 | + name: 'ResourceDetailPurchase', | ||
| 68 | + data() { | ||
| 69 | + return { | ||
| 70 | + loading: false, | ||
| 71 | + purchaseApplyDetails: [], | ||
| 72 | + page: { | ||
| 73 | + current: 1, | ||
| 74 | + size: 10, | ||
| 75 | + total: 0 | ||
| 76 | + }, | ||
| 77 | + resId: '', | ||
| 78 | + communityId: '' | ||
| 79 | + } | ||
| 80 | + }, | ||
| 81 | + created() { | ||
| 82 | + this.communityId = getCommunityId() | ||
| 83 | + }, | ||
| 84 | + methods: { | ||
| 85 | + async loadData(params) { | ||
| 86 | + this.resId = params.resId | ||
| 87 | + await this.getList() | ||
| 88 | + }, | ||
| 89 | + async getList() { | ||
| 90 | + try { | ||
| 91 | + this.loading = true | ||
| 92 | + const { purchaseApplyDetails, total } = await getPurchaseApplyDetailList({ | ||
| 93 | + resId: this.resId, | ||
| 94 | + resOrderType: 10000, | ||
| 95 | + page: this.page.current, | ||
| 96 | + row: this.page.size, | ||
| 97 | + communityId: this.communityId | ||
| 98 | + }) | ||
| 99 | + this.purchaseApplyDetails = purchaseApplyDetails | ||
| 100 | + this.page.total = total | ||
| 101 | + } catch (error) { | ||
| 102 | + console.error('Failed to load purchase details:', error) | ||
| 103 | + } finally { | ||
| 104 | + this.loading = false | ||
| 105 | + } | ||
| 106 | + }, | ||
| 107 | + viewPurchaseRemark(row) { | ||
| 108 | + this.$alert(row.purchaseRemark, this.$t('resourceDetail.purchase.remark'), { | ||
| 109 | + confirmButtonText: this.$t('common.confirm') | ||
| 110 | + }) | ||
| 111 | + }, | ||
| 112 | + handleSizeChange(val) { | ||
| 113 | + this.page.size = val | ||
| 114 | + this.getList() | ||
| 115 | + }, | ||
| 116 | + handleCurrentChange(val) { | ||
| 117 | + this.page.current = val | ||
| 118 | + this.getList() | ||
| 119 | + } | ||
| 120 | + } | ||
| 121 | +} | ||
| 122 | +</script> | ||
| 123 | + | ||
| 124 | +<style lang="scss" scoped> | ||
| 125 | +.resource-detail-purchase { | ||
| 126 | + padding: 20px; | ||
| 127 | + | ||
| 128 | + .el-pagination { | ||
| 129 | + margin-top: 20px; | ||
| 130 | + text-align: right; | ||
| 131 | + } | ||
| 132 | +} | ||
| 133 | +</style> | ||
| 0 | \ No newline at end of file | 134 | \ No newline at end of file |
src/components/resource/resourceDetailUseRecord.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div class="resource-detail-use-record"> | ||
| 3 | + <el-table | ||
| 4 | + v-loading="loading" | ||
| 5 | + :data="resourceStoreUseRecords" | ||
| 6 | + border | ||
| 7 | + style="width: 100%" | ||
| 8 | + > | ||
| 9 | + <el-table-column | ||
| 10 | + prop="rsurId" | ||
| 11 | + :label="$t('resourceDetail.useRecord.id')" | ||
| 12 | + align="center" | ||
| 13 | + /> | ||
| 14 | + <el-table-column | ||
| 15 | + prop="repairId" | ||
| 16 | + :label="$t('resourceDetail.useRecord.repairId')" | ||
| 17 | + align="center" | ||
| 18 | + /> | ||
| 19 | + <el-table-column | ||
| 20 | + prop="resId" | ||
| 21 | + :label="$t('resourceDetail.useRecord.itemId')" | ||
| 22 | + align="center" | ||
| 23 | + /> | ||
| 24 | + <el-table-column | ||
| 25 | + :label="$t('resourceDetail.useRecord.itemType')" | ||
| 26 | + align="center" | ||
| 27 | + > | ||
| 28 | + <template slot-scope="scope"> | ||
| 29 | + {{ scope.row.parentRstName }} > {{ scope.row.rstName }} | ||
| 30 | + </template> | ||
| 31 | + </el-table-column> | ||
| 32 | + <el-table-column | ||
| 33 | + :label="$t('resourceDetail.useRecord.itemName')" | ||
| 34 | + align="center" | ||
| 35 | + > | ||
| 36 | + <template slot-scope="scope"> | ||
| 37 | + {{ scope.row.resourceStoreName || '-' }} | ||
| 38 | + </template> | ||
| 39 | + </el-table-column> | ||
| 40 | + <el-table-column | ||
| 41 | + :label="$t('resourceDetail.useRecord.itemSpec')" | ||
| 42 | + align="center" | ||
| 43 | + > | ||
| 44 | + <template slot-scope="scope"> | ||
| 45 | + {{ scope.row.specName || '-' }} | ||
| 46 | + </template> | ||
| 47 | + </el-table-column> | ||
| 48 | + <el-table-column | ||
| 49 | + prop="isFixedName" | ||
| 50 | + :label="$t('resourceDetail.useRecord.fixedItem')" | ||
| 51 | + align="center" | ||
| 52 | + /> | ||
| 53 | + <el-table-column | ||
| 54 | + prop="stateName" | ||
| 55 | + :label="$t('resourceDetail.useRecord.useType')" | ||
| 56 | + align="center" | ||
| 57 | + /> | ||
| 58 | + <el-table-column | ||
| 59 | + :label="$t('resourceDetail.useRecord.useQuantity')" | ||
| 60 | + align="center" | ||
| 61 | + > | ||
| 62 | + <template slot-scope="scope"> | ||
| 63 | + {{ scope.row.quantity }}{{ scope.row.miniUnitCodeName }} | ||
| 64 | + </template> | ||
| 65 | + </el-table-column> | ||
| 66 | + <el-table-column | ||
| 67 | + :label="$t('resourceDetail.useRecord.itemPrice')" | ||
| 68 | + align="center" | ||
| 69 | + > | ||
| 70 | + <template slot-scope="scope"> | ||
| 71 | + {{ scope.row.unitPrice || '-' }} | ||
| 72 | + </template> | ||
| 73 | + </el-table-column> | ||
| 74 | + <el-table-column | ||
| 75 | + prop="createUserId" | ||
| 76 | + :label="$t('resourceDetail.useRecord.userId')" | ||
| 77 | + align="center" | ||
| 78 | + /> | ||
| 79 | + <el-table-column | ||
| 80 | + prop="createUserName" | ||
| 81 | + :label="$t('resourceDetail.useRecord.userName')" | ||
| 82 | + align="center" | ||
| 83 | + /> | ||
| 84 | + <el-table-column | ||
| 85 | + prop="createTime" | ||
| 86 | + :label="$t('resourceDetail.useRecord.createTime')" | ||
| 87 | + align="center" | ||
| 88 | + /> | ||
| 89 | + <el-table-column | ||
| 90 | + prop="remark" | ||
| 91 | + :label="$t('resourceDetail.useRecord.remark')" | ||
| 92 | + align="center" | ||
| 93 | + /> | ||
| 94 | + </el-table> | ||
| 95 | + | ||
| 96 | + <el-pagination | ||
| 97 | + :current-page.sync="page.current" | ||
| 98 | + :page-sizes="[10, 20, 30, 50]" | ||
| 99 | + :page-size="page.size" | ||
| 100 | + :total="page.total" | ||
| 101 | + layout="total, sizes, prev, pager, next, jumper" | ||
| 102 | + @size-change="handleSizeChange" | ||
| 103 | + @current-change="handleCurrentChange" | ||
| 104 | + /> | ||
| 105 | + </div> | ||
| 106 | +</template> | ||
| 107 | + | ||
| 108 | +<script> | ||
| 109 | +import { getResourceStoreUseRecordList } from '@/api/resource/resourceDetailApi' | ||
| 110 | +import { getCommunityId } from '@/api/community/communityApi' | ||
| 111 | + | ||
| 112 | +export default { | ||
| 113 | + name: 'ResourceDetailUseRecord', | ||
| 114 | + data() { | ||
| 115 | + return { | ||
| 116 | + loading: false, | ||
| 117 | + resourceStoreUseRecords: [], | ||
| 118 | + page: { | ||
| 119 | + current: 1, | ||
| 120 | + size: 10, | ||
| 121 | + total: 0 | ||
| 122 | + }, | ||
| 123 | + resId: '', | ||
| 124 | + communityId: '' | ||
| 125 | + } | ||
| 126 | + }, | ||
| 127 | + created() { | ||
| 128 | + this.communityId = getCommunityId() | ||
| 129 | + }, | ||
| 130 | + methods: { | ||
| 131 | + async loadData(params) { | ||
| 132 | + this.resId = params.resId | ||
| 133 | + await this.getList() | ||
| 134 | + }, | ||
| 135 | + async getList() { | ||
| 136 | + try { | ||
| 137 | + this.loading = true | ||
| 138 | + const { data, total } = await getResourceStoreUseRecordList({ | ||
| 139 | + resId: this.resId, | ||
| 140 | + page: this.page.current, | ||
| 141 | + row: this.page.size, | ||
| 142 | + communityId: this.communityId | ||
| 143 | + }) | ||
| 144 | + this.resourceStoreUseRecords = data | ||
| 145 | + this.page.total = total | ||
| 146 | + } catch (error) { | ||
| 147 | + console.error('Failed to load use record details:', error) | ||
| 148 | + } finally { | ||
| 149 | + this.loading = false | ||
| 150 | + } | ||
| 151 | + }, | ||
| 152 | + handleSizeChange(val) { | ||
| 153 | + this.page.size = val | ||
| 154 | + this.getList() | ||
| 155 | + }, | ||
| 156 | + handleCurrentChange(val) { | ||
| 157 | + this.page.current = val | ||
| 158 | + this.getList() | ||
| 159 | + } | ||
| 160 | + } | ||
| 161 | +} | ||
| 162 | +</script> | ||
| 163 | + | ||
| 164 | +<style lang="scss" scoped> | ||
| 165 | +.resource-detail-use-record { | ||
| 166 | + padding: 20px; | ||
| 167 | + | ||
| 168 | + .el-pagination { | ||
| 169 | + margin-top: 20px; | ||
| 170 | + text-align: right; | ||
| 171 | + } | ||
| 172 | +} | ||
| 173 | +</style> | ||
| 0 | \ No newline at end of file | 174 | \ No newline at end of file |
src/i18n/resourceI18n.js
| @@ -19,6 +19,7 @@ import { messages as myResourceStoreManageMessages } from '../views/resource/myR | @@ -19,6 +19,7 @@ import { messages as myResourceStoreManageMessages } from '../views/resource/myR | ||
| 19 | import { messages as allocationUserStorehouseManageMessages } from '../views/resource/allocationUserStorehouseManageLang' | 19 | import { messages as allocationUserStorehouseManageMessages } from '../views/resource/allocationUserStorehouseManageLang' |
| 20 | import { messages as resourceStoreUseRecordManageMessages } from '../views/resource/resourceStoreUseRecordManageLang' | 20 | import { messages as resourceStoreUseRecordManageMessages } from '../views/resource/resourceStoreUseRecordManageLang' |
| 21 | import { messages as printEquipmentAccountLabelMessages } from '../views/resource/printEquipmentAccountLabelLang' | 21 | import { messages as printEquipmentAccountLabelMessages } from '../views/resource/printEquipmentAccountLabelLang' |
| 22 | +import { messages as resourceDetailMessages } from '../views/resource/resourceDetailLang' | ||
| 22 | 23 | ||
| 23 | 24 | ||
| 24 | export const messages = { | 25 | export const messages = { |
| @@ -43,6 +44,7 @@ export const messages = { | @@ -43,6 +44,7 @@ export const messages = { | ||
| 43 | ...allocationUserStorehouseManageMessages.en, | 44 | ...allocationUserStorehouseManageMessages.en, |
| 44 | ...resourceStoreUseRecordManageMessages.en, | 45 | ...resourceStoreUseRecordManageMessages.en, |
| 45 | ...printEquipmentAccountLabelMessages.en, | 46 | ...printEquipmentAccountLabelMessages.en, |
| 47 | + ...resourceDetailMessages.en, | ||
| 46 | }, | 48 | }, |
| 47 | zh: { | 49 | zh: { |
| 48 | ...resourceAuditFlowMessages.zh, | 50 | ...resourceAuditFlowMessages.zh, |
| @@ -65,5 +67,6 @@ export const messages = { | @@ -65,5 +67,6 @@ export const messages = { | ||
| 65 | ...allocationUserStorehouseManageMessages.zh, | 67 | ...allocationUserStorehouseManageMessages.zh, |
| 66 | ...resourceStoreUseRecordManageMessages.zh, | 68 | ...resourceStoreUseRecordManageMessages.zh, |
| 67 | ...printEquipmentAccountLabelMessages.zh, | 69 | ...printEquipmentAccountLabelMessages.zh, |
| 70 | + ...resourceDetailMessages.zh, | ||
| 68 | } | 71 | } |
| 69 | } | 72 | } |
| 70 | \ No newline at end of file | 73 | \ No newline at end of file |
src/router/resourceRouter.js
| @@ -100,5 +100,10 @@ export default [ | @@ -100,5 +100,10 @@ export default [ | ||
| 100 | name: '/pages/common/resourceStoreUseRecordManage', | 100 | name: '/pages/common/resourceStoreUseRecordManage', |
| 101 | component: () => import('@/views/resource/resourceStoreUseRecordManageList.vue') | 101 | component: () => import('@/views/resource/resourceStoreUseRecordManageList.vue') |
| 102 | }, | 102 | }, |
| 103 | + { | ||
| 104 | + path:'/views/resource/resourceDetail', | ||
| 105 | + name:'/views/resource/resourceDetail', | ||
| 106 | + component: () => import('@/views/resource/resourceDetailList.vue') | ||
| 107 | + }, | ||
| 103 | 108 | ||
| 104 | ] | 109 | ] |
| 105 | \ No newline at end of file | 110 | \ No newline at end of file |
src/views/layout/layout.vue
| @@ -201,6 +201,7 @@ export default { | @@ -201,6 +201,7 @@ export default { | ||
| 201 | } | 201 | } |
| 202 | setCurrentCommunity(community); | 202 | setCurrentCommunity(community); |
| 203 | this.curCommunityName = getCommunityName() | 203 | this.curCommunityName = getCommunityName() |
| 204 | + window.location.href="/" | ||
| 204 | }, | 205 | }, |
| 205 | handleMenuSelect(index) { | 206 | handleMenuSelect(index) { |
| 206 | // 处理菜单选择 | 207 | // 处理菜单选择 |
src/views/resource/resourceDetailLang.js
0 → 100644
| 1 | +export const messages = { | ||
| 2 | + en: { | ||
| 3 | + resourceDetail: { | ||
| 4 | + itemInfo: 'Item Information', | ||
| 5 | + itemNameWithCode: 'Item Name(Code):', | ||
| 6 | + warehouseName: 'Warehouse Name:', | ||
| 7 | + itemType: 'Item Type:', | ||
| 8 | + itemSpec: 'Item Specification:', | ||
| 9 | + fixedItem: 'Fixed Item:', | ||
| 10 | + referencePrice: 'Reference Price:', | ||
| 11 | + chargeStandard: 'Charge Standard:', | ||
| 12 | + itemStock: 'Item Stock:', | ||
| 13 | + minMeasurement: 'Minimum Measurement:', | ||
| 14 | + minMeasurementTotal: 'Minimum Measurement Total:', | ||
| 15 | + itemAvgPrice: 'Item Average Price:', | ||
| 16 | + purchaseRecord: 'Purchase Record', | ||
| 17 | + useRecordText: 'Use Record', | ||
| 18 | + inventoryRecord: 'Inventory Record', | ||
| 19 | + allocationRecord: 'Allocation Record', | ||
| 20 | + transferRecord: 'Transfer Record', | ||
| 21 | + usageRecord: 'Usage Record', | ||
| 22 | + purchase: { | ||
| 23 | + applyOrderId: 'Application No.', | ||
| 24 | + applicant: 'Applicant', | ||
| 25 | + endUser: 'End User', | ||
| 26 | + itemType: 'Item Type', | ||
| 27 | + itemName: 'Item Name', | ||
| 28 | + itemSpec: 'Item Specification', | ||
| 29 | + fixedItem: 'Fixed Item', | ||
| 30 | + supplier: 'Supplier', | ||
| 31 | + warehouse: 'Warehouse', | ||
| 32 | + applyQuantity: 'Application Quantity', | ||
| 33 | + actualQuantity: 'Actual Quantity', | ||
| 34 | + purchasePrice: 'Purchase Price', | ||
| 35 | + totalPrice: 'Total Price', | ||
| 36 | + remark: 'Remark', | ||
| 37 | + status: 'Status', | ||
| 38 | + createTime: 'Create Time' | ||
| 39 | + }, | ||
| 40 | + itemOut: { | ||
| 41 | + applyOrderId: 'Application No.', | ||
| 42 | + applicant: 'Applicant', | ||
| 43 | + endUser: 'End User', | ||
| 44 | + itemType: 'Item Type', | ||
| 45 | + itemName: 'Item Name', | ||
| 46 | + itemSpec: 'Item Specification', | ||
| 47 | + fixedItem: 'Fixed Item', | ||
| 48 | + supplier: 'Supplier', | ||
| 49 | + warehouse: 'Warehouse', | ||
| 50 | + applyQuantity: 'Application Quantity', | ||
| 51 | + quantity: 'Quantity', | ||
| 52 | + purchasePrice: 'Purchase Price', | ||
| 53 | + totalPrice: 'Total Price', | ||
| 54 | + remark: 'Remark', | ||
| 55 | + status: 'Status', | ||
| 56 | + createTime: 'Create Time' | ||
| 57 | + }, | ||
| 58 | + inventory: { | ||
| 59 | + inventoryId: 'Inventory No.', | ||
| 60 | + inventoryName: 'Inventory Name', | ||
| 61 | + inventoryTime: 'Inventory Time', | ||
| 62 | + warehouse: 'Warehouse', | ||
| 63 | + inventoryPerson: 'Inventory Person', | ||
| 64 | + status: 'Status', | ||
| 65 | + createTime: 'Create Time' | ||
| 66 | + }, | ||
| 67 | + allocation: { | ||
| 68 | + allocationId: 'Allocation No.', | ||
| 69 | + itemType: 'Item Type', | ||
| 70 | + itemName: 'Item Name', | ||
| 71 | + itemSpec: 'Item Specification', | ||
| 72 | + fixedItem: 'Fixed Item', | ||
| 73 | + originalStock: 'Original Stock', | ||
| 74 | + allocationQuantity: 'Allocation Quantity', | ||
| 75 | + sourceWarehouse: 'Source Warehouse', | ||
| 76 | + targetWarehouse: 'Target Warehouse', | ||
| 77 | + applicant: 'Applicant', | ||
| 78 | + remark: 'Remark', | ||
| 79 | + allocationType: 'Allocation Type', | ||
| 80 | + status: 'Status', | ||
| 81 | + createTime: 'Create Time' | ||
| 82 | + }, | ||
| 83 | + allocationUser: { | ||
| 84 | + id: 'ID', | ||
| 85 | + itemType: 'Item Type', | ||
| 86 | + itemName: 'Item Name', | ||
| 87 | + itemSpec: 'Item Specification', | ||
| 88 | + fixedItem: 'Fixed Item', | ||
| 89 | + transferUser: 'Transfer User', | ||
| 90 | + transferTarget: 'Transfer Target', | ||
| 91 | + originalStock: 'Original Stock', | ||
| 92 | + transferQuantity: 'Transfer Quantity', | ||
| 93 | + createTime: 'Create Time', | ||
| 94 | + remark: 'Remark' | ||
| 95 | + }, | ||
| 96 | + useRecord: { | ||
| 97 | + id: 'ID', | ||
| 98 | + repairId: 'Repair ID', | ||
| 99 | + itemId: 'Item ID', | ||
| 100 | + itemType: 'Item Type', | ||
| 101 | + itemName: 'Item Name', | ||
| 102 | + itemSpec: 'Item Specification', | ||
| 103 | + fixedItem: 'Fixed Item', | ||
| 104 | + useType: 'Use Type', | ||
| 105 | + useQuantity: 'Use Quantity', | ||
| 106 | + itemPrice: 'Item Price', | ||
| 107 | + userId: 'User ID', | ||
| 108 | + userName: 'User Name', | ||
| 109 | + createTime: 'Create Time', | ||
| 110 | + remark: 'Remark' | ||
| 111 | + } | ||
| 112 | + } | ||
| 113 | + }, | ||
| 114 | + zh: { | ||
| 115 | + resourceDetail: { | ||
| 116 | + itemInfo: '物品信息', | ||
| 117 | + itemNameWithCode: '物品名称(编号):', | ||
| 118 | + warehouseName: '仓库名称:', | ||
| 119 | + itemType: '物品类型:', | ||
| 120 | + itemSpec: '物品规格:', | ||
| 121 | + fixedItem: '固定物品:', | ||
| 122 | + referencePrice: '参考价格:', | ||
| 123 | + chargeStandard: '收费标准:', | ||
| 124 | + itemStock: '物品库存:', | ||
| 125 | + minMeasurement: '最小计量:', | ||
| 126 | + minMeasurementTotal: '最小计量总数:', | ||
| 127 | + itemAvgPrice: '物品均价:', | ||
| 128 | + purchaseRecord: '采购记录', | ||
| 129 | + useRecordText: '领用记录', | ||
| 130 | + inventoryRecord: '盘点记录', | ||
| 131 | + allocationRecord: '调拨记录', | ||
| 132 | + transferRecord: '转赠记录', | ||
| 133 | + usageRecord: '使用记录', | ||
| 134 | + purchase: { | ||
| 135 | + applyOrderId: '申请单号', | ||
| 136 | + applicant: '申请人', | ||
| 137 | + endUser: '使用人', | ||
| 138 | + itemType: '物品类型', | ||
| 139 | + itemName: '物品名称', | ||
| 140 | + itemSpec: '物品规格', | ||
| 141 | + fixedItem: '固定物品', | ||
| 142 | + supplier: '供应商', | ||
| 143 | + warehouse: '物品仓库', | ||
| 144 | + applyQuantity: '申请数量', | ||
| 145 | + actualQuantity: '实际采购数量', | ||
| 146 | + purchasePrice: '采购价格', | ||
| 147 | + totalPrice: '总价', | ||
| 148 | + remark: '申请备注', | ||
| 149 | + status: '状态', | ||
| 150 | + createTime: '创建时间' | ||
| 151 | + }, | ||
| 152 | + itemOut: { | ||
| 153 | + applyOrderId: '申请单号', | ||
| 154 | + applicant: '申请人', | ||
| 155 | + endUser: '使用人', | ||
| 156 | + itemType: '物品类型', | ||
| 157 | + itemName: '物品名称', | ||
| 158 | + itemSpec: '物品规格', | ||
| 159 | + fixedItem: '固定物品', | ||
| 160 | + supplier: '供应商', | ||
| 161 | + warehouse: '物品仓库', | ||
| 162 | + applyQuantity: '申请数量', | ||
| 163 | + quantity: '数量', | ||
| 164 | + purchasePrice: '采购价格', | ||
| 165 | + totalPrice: '总价', | ||
| 166 | + remark: '申请备注', | ||
| 167 | + status: '状态', | ||
| 168 | + createTime: '创建时间' | ||
| 169 | + }, | ||
| 170 | + inventory: { | ||
| 171 | + inventoryId: '盘点单号', | ||
| 172 | + inventoryName: '盘点名称', | ||
| 173 | + inventoryTime: '盘点时间', | ||
| 174 | + warehouse: '盘点仓库', | ||
| 175 | + inventoryPerson: '盘点人', | ||
| 176 | + status: '状态', | ||
| 177 | + createTime: '创建时间' | ||
| 178 | + }, | ||
| 179 | + allocation: { | ||
| 180 | + allocationId: '调拨单号', | ||
| 181 | + itemType: '物品类型', | ||
| 182 | + itemName: '物品名称', | ||
| 183 | + itemSpec: '物品规格', | ||
| 184 | + fixedItem: '固定物品', | ||
| 185 | + originalStock: '被调仓库原库存', | ||
| 186 | + allocationQuantity: '调拨数量', | ||
| 187 | + sourceWarehouse: '被调仓库', | ||
| 188 | + targetWarehouse: '目标仓库', | ||
| 189 | + applicant: '申请人', | ||
| 190 | + remark: '调拨备注', | ||
| 191 | + allocationType: '调拨类型', | ||
| 192 | + status: '状态', | ||
| 193 | + createTime: '时间' | ||
| 194 | + }, | ||
| 195 | + allocationUser: { | ||
| 196 | + id: '编号', | ||
| 197 | + itemType: '物品类型', | ||
| 198 | + itemName: '物品名称', | ||
| 199 | + itemSpec: '物品规格', | ||
| 200 | + fixedItem: '固定物品', | ||
| 201 | + transferUser: '转赠人', | ||
| 202 | + transferTarget: '转赠对象', | ||
| 203 | + originalStock: '原有库存', | ||
| 204 | + transferQuantity: '转赠数量', | ||
| 205 | + createTime: '创建时间', | ||
| 206 | + remark: '备注' | ||
| 207 | + }, | ||
| 208 | + useRecord: { | ||
| 209 | + id: '编号', | ||
| 210 | + repairId: '维修编号', | ||
| 211 | + itemId: '物品编号', | ||
| 212 | + itemType: '物品类型', | ||
| 213 | + itemName: '物品名称', | ||
| 214 | + itemSpec: '物品规格', | ||
| 215 | + fixedItem: '固定物品', | ||
| 216 | + useType: '使用类型', | ||
| 217 | + useQuantity: '使用数量', | ||
| 218 | + itemPrice: '物品价格', | ||
| 219 | + userId: '使用人ID', | ||
| 220 | + userName: '使用人', | ||
| 221 | + createTime: '创建时间', | ||
| 222 | + remark: '备注' | ||
| 223 | + } | ||
| 224 | + } | ||
| 225 | + } | ||
| 226 | +} | ||
| 0 | \ No newline at end of file | 227 | \ No newline at end of file |
src/views/resource/resourceDetailList.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div class="resource-detail-container"> | ||
| 3 | + <el-card class="box-card"> | ||
| 4 | + <div slot="header" class="flex justify-between"> | ||
| 5 | + <span>{{ $t('resourceDetail.itemInfo') }}</span> | ||
| 6 | + </div> | ||
| 7 | + <div class="white-bg border-radius-top"> | ||
| 8 | + <div class="margin-top text-left"> | ||
| 9 | + <el-row> | ||
| 10 | + <el-col :span="24"> | ||
| 11 | + <el-row> | ||
| 12 | + <el-col :span="6"> | ||
| 13 | + <div class="form-group"> | ||
| 14 | + <label class="col-form-label"> | ||
| 15 | + {{ $t('resourceDetail.itemNameWithCode') }} | ||
| 16 | + </label> | ||
| 17 | + <label class="">{{ resourceDetailInfo.resName }}({{ resourceDetailInfo.resCode }})</label> | ||
| 18 | + </div> | ||
| 19 | + </el-col> | ||
| 20 | + <el-col :span="6"> | ||
| 21 | + <div class="form-group"> | ||
| 22 | + <label class="col-form-label"> | ||
| 23 | + {{ $t('resourceDetail.warehouseName') }} | ||
| 24 | + </label> | ||
| 25 | + <label class="">{{ resourceDetailInfo.shName }}</label> | ||
| 26 | + </div> | ||
| 27 | + </el-col> | ||
| 28 | + <el-col :span="6"> | ||
| 29 | + <div class="form-group"> | ||
| 30 | + <label class="col-form-label"> | ||
| 31 | + {{ $t('resourceDetail.itemType') }} | ||
| 32 | + </label> | ||
| 33 | + <label class="">{{ resourceDetailInfo.parentRstName }} | ||
| 34 | + {{ resourceDetailInfo.rstName ? ' > ' + resourceDetailInfo.rstName : '' }}</label> | ||
| 35 | + </div> | ||
| 36 | + </el-col> | ||
| 37 | + <el-col :span="6"> | ||
| 38 | + <div class="form-group"> | ||
| 39 | + <label class="col-form-label"> | ||
| 40 | + {{ $t('resourceDetail.itemSpec') }} | ||
| 41 | + </label> | ||
| 42 | + <label class=""> | ||
| 43 | + {{ resourceDetailInfo.rssName ? resourceDetailInfo.rssName : '-' }} | ||
| 44 | + </label> | ||
| 45 | + </div> | ||
| 46 | + </el-col> | ||
| 47 | + </el-row> | ||
| 48 | + | ||
| 49 | + <el-row> | ||
| 50 | + <el-col :span="6"> | ||
| 51 | + <div class="form-group"> | ||
| 52 | + <label class="col-form-label"> | ||
| 53 | + {{ $t('resourceDetail.fixedItem') }} | ||
| 54 | + </label> | ||
| 55 | + <label class="">{{ resourceDetailInfo.isFixedName }}</label> | ||
| 56 | + </div> | ||
| 57 | + </el-col> | ||
| 58 | + <el-col :span="6"> | ||
| 59 | + <div class="form-group"> | ||
| 60 | + <label class="col-form-label"> | ||
| 61 | + {{ $t('resourceDetail.referencePrice') }} | ||
| 62 | + </label> | ||
| 63 | + <label class="">{{ '¥' + resourceDetailInfo.price }}</label> | ||
| 64 | + </div> | ||
| 65 | + </el-col> | ||
| 66 | + <el-col :span="6"> | ||
| 67 | + <div class="form-group"> | ||
| 68 | + <label class="col-form-label"> | ||
| 69 | + {{ $t('resourceDetail.chargeStandard') }} | ||
| 70 | + </label> | ||
| 71 | + <label class="">{{ resourceDetailInfo.outHighPrice == | ||
| 72 | + resourceDetailInfo.outLowPrice ? '¥' + | ||
| 73 | + resourceDetailInfo.outLowPrice : '¥' + resourceDetailInfo.outLowPrice + '-¥' + | ||
| 74 | + resourceDetailInfo.outHighPrice }}</label> | ||
| 75 | + </div> | ||
| 76 | + </el-col> | ||
| 77 | + <el-col :span="6"> | ||
| 78 | + <div class="form-group"> | ||
| 79 | + <label class="col-form-label"> | ||
| 80 | + {{ $t('resourceDetail.itemStock') }} | ||
| 81 | + </label> | ||
| 82 | + <label class="">{{ resourceDetailInfo.stock }}{{ resourceDetailInfo.unitCodeName }}</label> | ||
| 83 | + </div> | ||
| 84 | + </el-col> | ||
| 85 | + </el-row> | ||
| 86 | + | ||
| 87 | + <el-row> | ||
| 88 | + <el-col :span="6"> | ||
| 89 | + <div class="form-group"> | ||
| 90 | + <label class="col-form-label"> | ||
| 91 | + {{ $t('resourceDetail.minMeasurement') }} | ||
| 92 | + </label> | ||
| 93 | + <label | ||
| 94 | + class="">1{{ resourceDetailInfo.unitCodeName }}={{ resourceDetailInfo.miniUnitStock }}{{ resourceDetailInfo.miniUnitCodeName }}</label> | ||
| 95 | + </div> | ||
| 96 | + </el-col> | ||
| 97 | + <el-col :span="6"> | ||
| 98 | + <div class="form-group"> | ||
| 99 | + <label class="col-form-label"> | ||
| 100 | + {{ $t('resourceDetail.minMeasurementTotal') }} | ||
| 101 | + </label> | ||
| 102 | + <label class="">{{ resourceDetailInfo.miniStock }}{{ resourceDetailInfo.miniUnitCodeName }}</label> | ||
| 103 | + </div> | ||
| 104 | + </el-col> | ||
| 105 | + <el-col :span="6"> | ||
| 106 | + <div class="form-group"> | ||
| 107 | + <label class="col-form-label"> | ||
| 108 | + {{ $t('resourceDetail.itemAvgPrice') }} | ||
| 109 | + </label> | ||
| 110 | + <label class="">{{ resourceDetailInfo.averagePrice ? '¥' + | ||
| 111 | + resourceDetailInfo.averagePrice : '¥0' }}</label> | ||
| 112 | + </div> | ||
| 113 | + </el-col> | ||
| 114 | + </el-row> | ||
| 115 | + </el-col> | ||
| 116 | + </el-row> | ||
| 117 | + </div> | ||
| 118 | + | ||
| 119 | + <divider /> | ||
| 120 | + | ||
| 121 | + <div class="margin-top-sm"> | ||
| 122 | + <el-tabs v-model="resourceDetailInfo._currentTab" @tab-click="changeTab(resourceDetailInfo._currentTab)"> | ||
| 123 | + <el-tab-pane :label="$t('resourceDetail.purchaseRecord')" name="resourceDetailPurchase"> | ||
| 124 | + <resource-detail-purchase ref="resourceDetailPurchase" | ||
| 125 | + v-if="resourceDetailInfo._currentTab === 'resourceDetailPurchase'" /> | ||
| 126 | + </el-tab-pane> | ||
| 127 | + <el-tab-pane :label="$t('resourceDetail.useRecordText')" name="resourceDetailItemOut"> | ||
| 128 | + <resource-detail-item-out ref="resourceDetailItemOut" | ||
| 129 | + v-if="resourceDetailInfo._currentTab === 'resourceDetailItemOut'" /> | ||
| 130 | + </el-tab-pane> | ||
| 131 | + <el-tab-pane :label="$t('resourceDetail.inventoryRecord')" name="resourceDetailInventory"> | ||
| 132 | + <resource-detail-inventory ref="resourceDetailInventory" | ||
| 133 | + v-if="resourceDetailInfo._currentTab === 'resourceDetailInventory'" /> | ||
| 134 | + </el-tab-pane> | ||
| 135 | + <el-tab-pane :label="$t('resourceDetail.allocationRecord')" name="resourceDetailAllocation"> | ||
| 136 | + <resource-detail-allocation ref="resourceDetailAllocation" | ||
| 137 | + v-if="resourceDetailInfo._currentTab === 'resourceDetailAllocation'" /> | ||
| 138 | + </el-tab-pane> | ||
| 139 | + <el-tab-pane :label="$t('resourceDetail.transferRecord')" name="resourceDetailAllocationUser"> | ||
| 140 | + <resource-detail-allocation-user ref="resourceDetailAllocationUser" | ||
| 141 | + v-if="resourceDetailInfo._currentTab === 'resourceDetailAllocationUser'" /> | ||
| 142 | + </el-tab-pane> | ||
| 143 | + <el-tab-pane :label="$t('resourceDetail.usageRecord')" name="resourceDetailUseRecord"> | ||
| 144 | + <resource-detail-use-record ref="resourceDetailUseRecord" | ||
| 145 | + v-if="resourceDetailInfo._currentTab === 'resourceDetailUseRecord'" /> | ||
| 146 | + </el-tab-pane> | ||
| 147 | + </el-tabs> | ||
| 148 | + </div> | ||
| 149 | + </div> | ||
| 150 | + </el-card> | ||
| 151 | + </div> | ||
| 152 | +</template> | ||
| 153 | + | ||
| 154 | +<script> | ||
| 155 | +import { getCommunityId } from '@/api/community/communityApi' | ||
| 156 | +import ResourceDetailPurchase from '@/components/resource/resourceDetailPurchase' | ||
| 157 | +import ResourceDetailItemOut from '@/components/resource/resourceDetailItemOut' | ||
| 158 | +import ResourceDetailInventory from '@/components/resource/resourceDetailInventory' | ||
| 159 | +import ResourceDetailAllocation from '@/components/resource/resourceDetailAllocation' | ||
| 160 | +import ResourceDetailAllocationUser from '@/components/resource/resourceDetailAllocationUser' | ||
| 161 | +import ResourceDetailUseRecord from '@/components/resource/resourceDetailUseRecord' | ||
| 162 | +import { getResourceStoreList } from '@/api/resource/resourceDetailApi' | ||
| 163 | +import divider from '@/components/system/divider' | ||
| 164 | + | ||
| 165 | +export default { | ||
| 166 | + name: 'ResourceDetailList', | ||
| 167 | + components: { | ||
| 168 | + ResourceDetailPurchase, | ||
| 169 | + ResourceDetailItemOut, | ||
| 170 | + ResourceDetailInventory, | ||
| 171 | + ResourceDetailAllocation, | ||
| 172 | + ResourceDetailAllocationUser, | ||
| 173 | + ResourceDetailUseRecord, | ||
| 174 | + divider | ||
| 175 | + }, | ||
| 176 | + data() { | ||
| 177 | + return { | ||
| 178 | + resourceDetailInfo: { | ||
| 179 | + resId: '', | ||
| 180 | + shName: '', | ||
| 181 | + parentRstName: '', | ||
| 182 | + rstName: '', | ||
| 183 | + resName: '', | ||
| 184 | + resCode: '', | ||
| 185 | + rssName: '', | ||
| 186 | + isFixedName: '', | ||
| 187 | + price: '', | ||
| 188 | + outHighPrice: '', | ||
| 189 | + outLowPrice: '', | ||
| 190 | + stock: '', | ||
| 191 | + unitCodeName: '', | ||
| 192 | + miniUnitStock: '', | ||
| 193 | + miniUnitCodeName: '', | ||
| 194 | + miniStock: '', | ||
| 195 | + averagePrice: '', | ||
| 196 | + _currentTab: 'resourceDetailPurchase', | ||
| 197 | + needBack: false | ||
| 198 | + }, | ||
| 199 | + communityId: '' | ||
| 200 | + } | ||
| 201 | + }, | ||
| 202 | + created() { | ||
| 203 | + this.communityId = getCommunityId() | ||
| 204 | + this.resourceDetailInfo.resId = this.$route.query.resId | ||
| 205 | + if (!this.resourceDetailInfo.resId) { | ||
| 206 | + return | ||
| 207 | + } | ||
| 208 | + this.loadResourceDetailInfo() | ||
| 209 | + }, | ||
| 210 | + methods: { | ||
| 211 | + async loadResourceDetailInfo() { | ||
| 212 | + try { | ||
| 213 | + const params = { | ||
| 214 | + page: 1, | ||
| 215 | + row: 1, | ||
| 216 | + resId: this.resourceDetailInfo.resId, | ||
| 217 | + communityId: this.communityId | ||
| 218 | + } | ||
| 219 | + | ||
| 220 | + const { resourceStores } = await getResourceStoreList(params) | ||
| 221 | + if (resourceStores && resourceStores.length > 0) { | ||
| 222 | + Object.assign(this.resourceDetailInfo, resourceStores[0]) | ||
| 223 | + this.changeTab(this.resourceDetailInfo._currentTab) | ||
| 224 | + } | ||
| 225 | + } catch (error) { | ||
| 226 | + console.error('Failed to load resource detail:', error) | ||
| 227 | + } | ||
| 228 | + }, | ||
| 229 | + changeTab(tabName) { | ||
| 230 | + this.resourceDetailInfo._currentTab = tabName | ||
| 231 | + setTimeout(() => { | ||
| 232 | + const tabRef = this.$refs[`${tabName}`] | ||
| 233 | + if (tabRef && tabRef.loadData) { | ||
| 234 | + tabRef.loadData({ resId: this.resourceDetailInfo.resId }) | ||
| 235 | + } | ||
| 236 | + }, 500) | ||
| 237 | + } | ||
| 238 | + } | ||
| 239 | +} | ||
| 240 | +</script> | ||
| 241 | + | ||
| 242 | +<style lang="scss" scoped> | ||
| 243 | +.resource-detail-container { | ||
| 244 | + padding: 20px; | ||
| 245 | + | ||
| 246 | + .box-card { | ||
| 247 | + margin-bottom: 20px; | ||
| 248 | + } | ||
| 249 | + | ||
| 250 | + .white-bg { | ||
| 251 | + background-color: #fff; | ||
| 252 | + } | ||
| 253 | + | ||
| 254 | + .padding-left { | ||
| 255 | + padding-left: 20px; | ||
| 256 | + } | ||
| 257 | + | ||
| 258 | + .padding-right { | ||
| 259 | + padding-right: 20px; | ||
| 260 | + } | ||
| 261 | + | ||
| 262 | + .padding-top { | ||
| 263 | + padding-top: 20px; | ||
| 264 | + } | ||
| 265 | + | ||
| 266 | + .border-radius-top { | ||
| 267 | + border-radius: 4px 4px 0 0; | ||
| 268 | + } | ||
| 269 | + | ||
| 270 | + .border-radius-bottom { | ||
| 271 | + border-radius: 0 0 4px 4px; | ||
| 272 | + } | ||
| 273 | + | ||
| 274 | + .margin-top { | ||
| 275 | + margin-top: 20px; | ||
| 276 | + } | ||
| 277 | + | ||
| 278 | + .margin-top-sm { | ||
| 279 | + margin-top: 10px; | ||
| 280 | + } | ||
| 281 | + | ||
| 282 | + .text-title { | ||
| 283 | + font-size: 16px; | ||
| 284 | + font-weight: bold; | ||
| 285 | + } | ||
| 286 | + | ||
| 287 | + .vc-line-primary { | ||
| 288 | + height: 1px; | ||
| 289 | + background-color: #ebeef5; | ||
| 290 | + } | ||
| 291 | + | ||
| 292 | + .form-group { | ||
| 293 | + margin-bottom: 15px; | ||
| 294 | + | ||
| 295 | + .col-form-label { | ||
| 296 | + margin-bottom: 5px; | ||
| 297 | + } | ||
| 298 | + } | ||
| 299 | + | ||
| 300 | + .flex { | ||
| 301 | + display: flex; | ||
| 302 | + } | ||
| 303 | + | ||
| 304 | + .justify-between { | ||
| 305 | + justify-content: space-between; | ||
| 306 | + } | ||
| 307 | +} | ||
| 308 | +</style> | ||
| 0 | \ No newline at end of file | 309 | \ No newline at end of file |
src/views/resource/resourceStoreManageLang.js
| @@ -115,7 +115,8 @@ export const messages = { | @@ -115,7 +115,8 @@ export const messages = { | ||
| 115 | deleteTypeSuccess: 'Delete type success', | 115 | deleteTypeSuccess: 'Delete type success', |
| 116 | inboundTime: 'Inbound Time', | 116 | inboundTime: 'Inbound Time', |
| 117 | unitPrice: 'Unit Price', | 117 | unitPrice: 'Unit Price', |
| 118 | - fetchTotalPriceError: 'Failed to get total price details' | 118 | + fetchTotalPriceError: 'Failed to get total price details', |
| 119 | + storehouse: 'Storehouse' | ||
| 119 | } | 120 | } |
| 120 | }, | 121 | }, |
| 121 | zh: { | 122 | zh: { |
| @@ -234,7 +235,8 @@ export const messages = { | @@ -234,7 +235,8 @@ export const messages = { | ||
| 234 | deleteTypeSuccess: '删除类型成功', | 235 | deleteTypeSuccess: '删除类型成功', |
| 235 | inboundTime: '入库时间', | 236 | inboundTime: '入库时间', |
| 236 | unitPrice: '单价', | 237 | unitPrice: '单价', |
| 237 | - fetchTotalPriceError: '获取物品总价详情失败' | 238 | + fetchTotalPriceError: '获取物品总价详情失败', |
| 239 | + storehouse: '仓库' | ||
| 238 | } | 240 | } |
| 239 | } | 241 | } |
| 240 | } | 242 | } |
| 241 | \ No newline at end of file | 243 | \ No newline at end of file |
src/views/resource/resourceStoreManageList.vue
| @@ -218,7 +218,7 @@ | @@ -218,7 +218,7 @@ | ||
| 218 | 218 | ||
| 219 | <script> | 219 | <script> |
| 220 | import { getDict, getCommunityId } from '@/api/community/communityApi' | 220 | import { getDict, getCommunityId } from '@/api/community/communityApi' |
| 221 | -import { listResourceStores, exportResourceStoreData, listResourceStoreSpecifications, listStorehouses, listResourceStoreTypes } from '@/api/resource/resourceStoreManageApi' | 221 | +import { listResourceStores, exportData, listResourceStoreSpecifications, listStorehouses, listResourceStoreTypes } from '@/api/resource/resourceStoreManageApi' |
| 222 | //import { } from '@/api/resource/resourceStoreTypeApi' | 222 | //import { } from '@/api/resource/resourceStoreTypeApi' |
| 223 | import ResourceStoreTypeTree from '@/components/resource/resourceStoreTypeTree' | 223 | import ResourceStoreTypeTree from '@/components/resource/resourceStoreTypeTree' |
| 224 | import AddResourceStore from '@/components/resource/addResourceStore' | 224 | import AddResourceStore from '@/components/resource/addResourceStore' |
| @@ -460,8 +460,11 @@ export default { | @@ -460,8 +460,11 @@ export default { | ||
| 460 | async exportExcel() { | 460 | async exportExcel() { |
| 461 | try { | 461 | try { |
| 462 | this.resourceStoreManageInfo.conditions.pagePath = 'resourceStoreManage' | 462 | this.resourceStoreManageInfo.conditions.pagePath = 'resourceStoreManage' |
| 463 | - await exportResourceStoreData(this.resourceStoreManageInfo.conditions) | 463 | + const res = await exportData(this.resourceStoreManageInfo.conditions) |
| 464 | this.$message.success(this.$t('resourceStoreManage.exportSuccess')) | 464 | this.$message.success(this.$t('resourceStoreManage.exportSuccess')) |
| 465 | + if(res && res.code === 0){ | ||
| 466 | + window.open('/#/pages/property/downloadTempFile?tab=下载中心') | ||
| 467 | + } | ||
| 465 | } catch (error) { | 468 | } catch (error) { |
| 466 | console.error('导出失败:', error) | 469 | console.error('导出失败:', error) |
| 467 | this.$message.error(this.$t('resourceStoreManage.exportFailed')) | 470 | this.$message.error(this.$t('resourceStoreManage.exportFailed')) |
| @@ -470,7 +473,7 @@ export default { | @@ -470,7 +473,7 @@ export default { | ||
| 470 | 473 | ||
| 471 | jump2InPage() { | 474 | jump2InPage() { |
| 472 | this.$router.push({ | 475 | this.$router.push({ |
| 473 | - path: '/resource/addPurchaseApply', | 476 | + path: '/views/resource/addPurchaseApply', |
| 474 | query: { | 477 | query: { |
| 475 | resOrderType: '10000', | 478 | resOrderType: '10000', |
| 476 | purchaseSwitch: 'OFF' | 479 | purchaseSwitch: 'OFF' |
| @@ -480,7 +483,7 @@ export default { | @@ -480,7 +483,7 @@ export default { | ||
| 480 | 483 | ||
| 481 | jump2OutPage() { | 484 | jump2OutPage() { |
| 482 | this.$router.push({ | 485 | this.$router.push({ |
| 483 | - path: '/resource/addItemOut', | 486 | + path: '/views/resource/addItemOut', |
| 484 | query: { | 487 | query: { |
| 485 | resOrderType: '20000', | 488 | resOrderType: '20000', |
| 486 | from: 'resourceStore' | 489 | from: 'resourceStore' |
| @@ -489,7 +492,7 @@ export default { | @@ -489,7 +492,7 @@ export default { | ||
| 489 | }, | 492 | }, |
| 490 | 493 | ||
| 491 | toResourceStoreDetail(resource) { | 494 | toResourceStoreDetail(resource) { |
| 492 | - window.open(`/#/resource/resourceDetail?resId=${resource.resId}`) | 495 | + window.open(`/#/views/resource/resourceDetail?resId=${resource.resId}`) |
| 493 | }, | 496 | }, |
| 494 | 497 | ||
| 495 | goBack() { | 498 | goBack() { |