代码提交

This commit is contained in:
jiang 2026-01-21 15:00:11 +08:00
parent be0f2022e2
commit 5e49aca422
12 changed files with 177 additions and 159 deletions

View File

@ -5,6 +5,6 @@ VUE_APP_TITLE = 机械化施工装备管理(共享)平台
ENV = 'production'
# 机械化施工装备管理(共享)平台/生产环境
VUE_APP_BASE_API = '/prod-api'
#VUE_APP_BASE_API = '/prod-api'
# 宏源
#VUE_APP_BASE_API = '/iws/jxhzb-api'
VUE_APP_BASE_API = '/iws/jxhzb-api'

View File

@ -395,8 +395,8 @@ Router.prototype.replace = function push(location) {
}
export default new Router({
mode: process.env.VUE_APP_BASE_API == '/iws/jiju-api' ? 'hash' : 'history', // 宏源: hash
mode: 'hash', // 宏源: hash
scrollBehavior: () => ({ y: 0 }),
routes: constantRoutes,
base: process.env.VUE_APP_BASE_API == '/iws/jiju-api' ? '/iws/glweb/' : '/' // 宏源打包时隐藏
base: '/iws/glweb/'// 宏源打包时隐藏
})

View File

@ -145,13 +145,13 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="装备名称" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入装备名称" clearable />
<el-form-item label="装备名称" fixed="right" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入装备名称" clearable/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="规格型号" prop="specificationModel">
<el-input v-model="queryParams.specificationModel" placeholder="请输入规格型号" clearable />
<el-input v-model="queryParams.specificationModel" placeholder="请输入规格型号" clearable/>
</el-form-item>
</el-col>
</el-row>
@ -167,7 +167,7 @@
@change="majorChange"
style="width: 100%"
>
<el-option v-for="item in majorList" :key="item.value" :label="item.label" :value="item.value" />
<el-option v-for="item in majorList" :key="item.value" :label="item.label" :value="item.value"/>
</el-select>
</el-form-item>
</el-col>
@ -195,7 +195,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="装备编码" prop="code">
<el-input v-model="queryParams.code" placeholder="请输入装备编码" clearable />
<el-input v-model="queryParams.code" placeholder="请输入装备编码" clearable/>
</el-form-item>
</el-col>
<el-col :span="6">
@ -251,12 +251,12 @@
</el-col>
<el-col :span="6">
<el-form-item label="原始编码" prop="originalCode">
<el-input v-model="queryParams.originalCode" placeholder="请输入装备原始编码" clearable />
<el-input v-model="queryParams.originalCode" placeholder="请输入装备原始编码" clearable/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="使用年限" prop="serviceLife">
<el-input v-model="queryParams.serviceLife" placeholder="请输入使用年限" clearable />
<el-input v-model="queryParams.serviceLife" placeholder="请输入使用年限" clearable/>
</el-form-item>
</el-col>
<el-col :span="6">
@ -267,18 +267,18 @@
clearable
style="width: 100%"
>
<el-option v-for="item in manufacturerList" :key="item.id" :label="item.label" :value="item.id" />
<el-option v-for="item in manufacturerList" :key="item.id" :label="item.label" :value="item.id"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="特征项" prop="featureItem">
<el-input v-model="queryParams.featureItem" placeholder="请输入特征项" clearable />
<el-input v-model="queryParams.featureItem" placeholder="请输入特征项" clearable/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="特征值" prop="featureValue">
<el-input v-model="queryParams.featureValue" placeholder="请输入特征值" clearable />
<el-input v-model="queryParams.featureValue" placeholder="请输入特征值" clearable/>
</el-form-item>
</el-col>
</el-row>
@ -334,20 +334,23 @@
@selection-change="handleSelectionChange"
v-loading="tableLoading"
border
fit
stripe
height="546"
>
<el-table-column align="center" show-overflow-tooltip type="selection" width="50" />
<el-table-column align="center" show-overflow-tooltip type="index" label="序号" width="50" />
<el-table-column align="center" show-overflow-tooltip type="selection" width="50"/>
<el-table-column align="center" show-overflow-tooltip type="index" label="序号" fixed="left" width="50"/>
<el-table-column
v-for="(item, index) in columns2"
v-if="item.visible"
:key="index"
:key="item.prop || index"
align="center"
show-overflow-tooltip
min-width="200"
:label="item.label"
:prop="item.prop"
:fixed="item.fixed"
:min-width="150"
:max-width="item.maxWidth || 200"
>
<template v-slot="{ row }" v-if="item.prop == 'process'">
<span>{{ row.mainProcess }}{{ row.subProcess ? '>' + row.subProcess : '' }}</span>
@ -397,7 +400,7 @@
<el-button type="text" @click="onHandlePreview(scope.row)">
<i class="el-icon-view"></i> 查看
</el-button>
<el-button type="text" icon="el-icon-edit" @click="onHandleEdit(scope.row)"> 编辑 </el-button>
<el-button type="text" icon="el-icon-edit" @click="onHandleEdit(scope.row)"> 编辑</el-button>
<el-button type="text" icon="el-icon-delete" @click="onHandleDelete(scope.row)" style="color: red">
删除
</el-button>
@ -435,42 +438,42 @@
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="公司名称" prop="companyName">
<el-input v-model="formData.companyName" disabled />
<el-input v-model="formData.companyName" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="施工主工序" prop="mainGx">
<el-input v-model="formData.mainGx" disabled />
<el-input v-model="formData.mainGx" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="施工子工序" prop="childGx">
<el-input v-model="formData.childGx" disabled />
<el-input v-model="formData.childGx" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="装备大类" prop="devCategory">
<el-input v-model="formData.devCategory" disabled />
<el-input v-model="formData.devCategory" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="装备小类" prop="devSubcategory">
<el-input v-model="formData.devSubcategory" disabled />
<el-input v-model="formData.devSubcategory" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="装备名称" prop="name">
<el-input v-model="formData.name" disabled />
<el-input v-model="formData.name" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="规格型号" prop="devModel">
<el-input v-model="formData.devModel" disabled />
<el-input v-model="formData.devModel" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="装备编号" prop="code">
<el-input v-model="formData.code" disabled />
<el-input v-model="formData.code" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
@ -494,57 +497,57 @@
</el-col>
<el-col :span="12">
<el-form-item label="使用到期时间" prop="expireTime">
<el-input v-model="formData.expireTime" disabled />
<el-input v-model="formData.expireTime" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="计数单位" prop="unitName">
<el-input v-model="formData.unitName" disabled />
<el-input v-model="formData.unitName" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="产权单位" prop="propertyCompany">
<el-input v-model="formData.propertyCompany" disabled />
<el-input v-model="formData.propertyCompany" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="资产原值(万元)" prop="buyPrice">
<el-input v-model="formData.buyPrice" disabled />
<el-input v-model="formData.buyPrice" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生产日期" prop="productionDate">
<el-input v-model="formData.productionDate" disabled />
<el-input v-model="formData.productionDate" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="使用年限" prop="workingHours">
<el-input v-model="formData.workingHours" disabled />
<el-input v-model="formData.workingHours" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所在项目" prop="onProject">
<el-input v-model="formData.onProject" disabled />
<el-input v-model="formData.onProject" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系人" prop="person">
<el-input v-model="formData.person" disabled />
<el-input v-model="formData.person" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系方式" prop="personPhone">
<el-input v-model="formData.personPhone" disabled />
<el-input v-model="formData.personPhone" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="下次维保日期" prop="nextCheckTime">
<el-input v-model="formData.nextCheckTime" disabled />
<el-input v-model="formData.nextCheckTime" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生产厂商" prop="brand">
<el-input v-model="formData.brand" disabled />
<el-input v-model="formData.brand" disabled/>
</el-form-item>
</el-col>
</el-row>
@ -567,42 +570,42 @@
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="公司名称" prop="companyName">
<el-input v-model="formData.companyName" />
<el-input v-model="formData.companyName"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="施工主工序" prop="mainGx">
<el-input v-model="formData.mainGx" />
<el-input v-model="formData.mainGx"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="施工子工序" prop="childGx">
<el-input v-model="formData.childGx" />
<el-input v-model="formData.childGx"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="装备大类" prop="devCategory">
<el-input v-model="formData.devCategory" />
<el-input v-model="formData.devCategory"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="装备小类" prop="devSubcategory">
<el-input v-model="formData.devSubcategory" />
<el-input v-model="formData.devSubcategory"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="装备名称" prop="name">
<el-input v-model="formData.name" />
<el-input v-model="formData.name"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="规格型号" prop="devModel">
<el-input v-model="formData.devModel" />
<el-input v-model="formData.devModel"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="装备编号" prop="code">
<el-input v-model="formData.code" disabled />
<el-input v-model="formData.code" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
@ -637,17 +640,17 @@
</el-col>
<el-col :span="12">
<el-form-item label="计数单位" prop="unitName">
<el-input v-model="formData.unitName" />
<el-input v-model="formData.unitName"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="产权单位" prop="propertyCompany">
<el-input v-model="formData.propertyCompany" />
<el-input v-model="formData.propertyCompany"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="资产原值(万元)" prop="buyPrice">
<el-input v-model="formData.buyPrice" type="number" />
<el-input v-model="formData.buyPrice" type="number"/>
</el-form-item>
</el-col>
<el-col :span="12">
@ -663,22 +666,22 @@
</el-col>
<el-col :span="12">
<el-form-item label="使用年限" prop="workingHours">
<el-input v-model="formData.workingHours" type="number" />
<el-input v-model="formData.workingHours" type="number"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所在项目" prop="onProject">
<el-input v-model="formData.onProject" />
<el-input v-model="formData.onProject"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系人" prop="person">
<el-input v-model="formData.person" />
<el-input v-model="formData.person"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系方式" prop="personPhone">
<el-input v-model="formData.personPhone" />
<el-input v-model="formData.personPhone"/>
</el-form-item>
</el-col>
<el-col :span="12">
@ -694,7 +697,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="生产厂商" prop="brand">
<el-input v-model="formData.brand" />
<el-input v-model="formData.brand"/>
</el-form-item>
</el-col>
<el-col :span="12"></el-col>
@ -721,7 +724,7 @@
<!-- 弹框 -->
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="40%">
<el-table :data="dialogList" fit highlight-current-row style="width: 100%" height="546">
<el-table-column type="index" width="55" label="序号" align="center" />
<el-table-column type="index" width="55" label="序号" align="center"/>
<el-table-column label="附件名称" prop="fileName" align="center">
<!-- 插槽 -->
<template v-slot="{ row }">
@ -738,7 +741,7 @@
<!-- 报告管理 -->
<el-dialog title="报告管理" :visible.sync="openReport" width="900px" append-to-body>
<el-table :data="fileDataList" width="100%" height="350px">
<el-table-column label="序号" type="index" width="55" align="center" />
<el-table-column label="序号" type="index" width="55" align="center"/>
<el-table-column label="报告类型" align="center" prop="dictLabel" :show-overflow-tooltip="true">
<template v-slot="{ row }">
<span v-if="row.type == 1 || row.type == 2 || row.type == 3">
@ -770,7 +773,7 @@
</el-table>
</el-dialog>
<AddEquip ref="addEquipRef" @getList="getDeviceList" />
<AddEquip ref="addEquipRef" @getList="getDeviceList"/>
</div>
</template>
@ -783,7 +786,7 @@ import {
delDevice,
updateDeviceAPI,
getDeviceDetailAPI,
getManufacturerSelectApi,
getManufacturerSelectApi
} from '@/api/EquipmentLedger/index.js'
import { firstLevel, secondAndThirdLevel } from '@/api/EquipmentEntryApply'
import { getMaxFeatureAPI, getProvinceListAPI } from '@/api/EquipmentLedger/equ-out.js'
@ -821,14 +824,14 @@ export default {
featureItem: undefined, //
featureValue: undefined, //
pageNum: 1,
pageSize: 10,
pageSize: 10
},
//
queryRules: {},
//
defaultProps: {
children: 'children',
label: 'name',
label: 'name'
},
treeData: [],
defaultExpandedKeys: [], // key
@ -840,23 +843,22 @@ export default {
manufacturerList: [], //
columns2: [],
columns: [
// { key: 0, label: ``, prop: 'province', visible: true },
{ key: 5, label: `装备名称`, prop: 'name', visible: true, fixed: 'left' },
{ key: 8, label: `装备状态`, prop: 'status', visible: true, fixed: 'left' },
{ key: 1, label: `产权单位`, prop: 'propertyUnit', visible: true },
{ key: 2, label: `专业`, prop: 'major', visible: true },
{ key: 3, label: `工序`, prop: 'process', visible: true },
{ key: 4, label: `装备类目`, prop: 'devType', visible: true },
{ key: 5, label: `装备名称`, prop: 'name', visible: true },
{ key: 6, label: `规格型号`, prop: 'specificationModel', visible: true },
{ key: 7, label: `装备编码`, prop: 'code', visible: true },
{ key: 8, label: `装备状态`, prop: 'status', visible: true },
// { key: 44, label: ``, prop: 'upDownStatus', visible: true },
{ key: 9, label: `使用年限`, prop: 'serviceLife', visible: true },
{ key: 10, label: `使用项目`, prop: 'usingProject', visible: true },
{ key: 11, label: `使用到期时间`, prop: 'expirationTime', visible: true },
{ key: 12, label: `使用次数`, prop: 'usageCount', visible: true },
{ key: 13, label: `维修次数`, prop: 'repairCount', visible: true },
{ key: 14, label: `装备原始编码`, prop: 'originalCode', visible: true },
// { key: 15, label: ``, prop: 'unit', visible: true },
{ key: 16, label: `生产厂家`, prop: 'manufacturer', visible: true },
{ key: 17, label: `出厂日期`, prop: 'productionDate', visible: true },
{ key: 18, label: `采购日期`, prop: 'purchaseDate', visible: true },
@ -865,10 +867,6 @@ export default {
{ key: 20, label: `最大使用年限(年)`, prop: 'maxServiceLifeYears', visible: true },
{ key: 21, label: `下次维保日期`, prop: 'nextMaintenanceDate', visible: true },
{ key: 22, label: `相关配套资料`, prop: 'fileImgList', visible: true },
// { key: 22, label: ``, prop: 'appearanceImages', visible: true },
// { key: 23, label: ``, prop: 'certificates', visible: true },
// { key: 24, label: ``, prop: 'inspectionReports', visible: true },
// { key: 25, label: ``, prop: 'purchaseInvoices', visible: true },
{ key: 26, label: `特征项1`, prop: 'featureItem1', visible: true },
{ key: 27, label: `特征值1`, prop: 'featureValue1', visible: true },
{ key: 28, label: `特征项2`, prop: 'featureItem2', visible: true },
@ -886,7 +884,7 @@ export default {
{ key: 40, label: `特征项8`, prop: 'featureItem8', visible: true },
{ key: 41, label: `特征值8`, prop: 'featureValue8', visible: true },
{ key: 42, label: `特征项9`, prop: 'featureItem9', visible: true },
{ key: 43, label: `特征值9`, prop: 'featureValue9', visible: true },
{ key: 43, label: `特征值9`, prop: 'featureValue9', visible: true }
],
tableData: [],
tableColumns: 0,
@ -930,13 +928,13 @@ export default {
personPhone: '',
nextCheckTime: '',
brand: '',
propertyVoList: [],
propertyVoList: []
},
//
formRules: {
name: [{ required: true, message: '请输入装备名称', trigger: 'blur' }],
code: [{ required: true, message: '请输入装备编号', trigger: 'blur' }],
changeStatus: [{ required: true, message: '请选择装备状态', trigger: 'change' }],
changeStatus: [{ required: true, message: '请选择装备状态', trigger: 'change' }]
},
maxFeatureCount: 5, //
dialogVisible: false,
@ -948,8 +946,8 @@ export default {
{ dictLabel: '装备外观', type: '1' },
{ dictLabel: '合格证', type: '2' },
{ dictLabel: '检测证书', type: '3' },
{ dictLabel: '采购发票', type: '4' },
],
{ dictLabel: '采购发票', type: '4' }
]
}
},
computed: {
@ -1048,7 +1046,7 @@ export default {
list.forEach((item) => {
map[item.value] = {
value: item.value.toString(),
label: item.label,
label: item.label
}
})
@ -1461,7 +1459,7 @@ export default {
personPhone: '',
nextCheckTime: '',
brand: '',
propertyVoList: [],
propertyVoList: []
}
},
@ -1481,7 +1479,7 @@ export default {
this.formData.propertyVoList.push({
propertyName: '',
propertyValue: '',
propertyValue: ''
})
},
@ -1494,7 +1492,7 @@ export default {
cancelButtonText: '取消',
type: 'warning',
center: true,
showCancelButton: this.formData.propertyVoList.length > 1, //
showCancelButton: this.formData.propertyVoList.length > 1 //
})
.then(() => {
this.formData.propertyVoList.splice(index, 1)
@ -1508,7 +1506,7 @@ export default {
* 提交编辑表单
*/
async submitEditForm() {
this.$refs.editForm.validate(async (valid) => {
this.$refs.editForm.validate(async(valid) => {
if (valid) {
try {
const res = await updateDeviceAPI(this.formData)
@ -1534,8 +1532,8 @@ export default {
this.$confirm('确定要删除该装备吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(async () => {
type: 'warning'
}).then(async() => {
try {
const res = await delDevice(row.maId)
if (res.code === 200) {
@ -1560,7 +1558,7 @@ export default {
try {
const res = await updateDeviceUpDownAPI({
devIds: this.selectedRows.map((item) => item.maId).join(','),
status: 1,
status: 1
})
this.selectedRows = []
@ -1588,7 +1586,7 @@ export default {
try {
const res = await updateDeviceUpDownAPI({
devIds: this.selectedRows.map((item) => item.maId).join(','),
status: 0,
status: 0
})
this.selectedRows = []
@ -1663,11 +1661,12 @@ export default {
handleFileListUpload(row) {
this.currentRow = row
this.openReport = true
},
}
},
async created() {
await this.getDeptTreeSelect().catch(() => {})
await this.getDeptTreeSelect().catch(() => {
})
const params = this.$route.query
this.queryParams.propertyUnitId = params?.deptId || ''
const ids = []
@ -1686,7 +1685,7 @@ export default {
//
await this.getDeviceList()
this.initDefaultExpandedKeys()
},
}
}
</script>

View File

@ -10,7 +10,7 @@ export default {
mounted() {
const url = process.env.VUE_APP_BASE_API == '/iws/jiju-api' ? 'iws/glweb/#' : ''
//
window.open(`${url}/screen/cityScreen`, '_blank')
window.open('iws/glweb/#/screen/cityScreen', '_blank')
//
this.$tab.closePage()
},

View File

@ -10,7 +10,7 @@ export default {
mounted() {
const url = process.env.VUE_APP_BASE_API == '/iws/jiju-api' ? 'iws/glweb/#' : ''
//
window.open(`${url}/screen/cityWidescreen`, '_blank')
window.open('iws/glweb/#/screen/cityWidescreen', '_blank')
//
this.$tab.closePage()
},

View File

@ -10,7 +10,7 @@ export default {
mounted() {
const url = process.env.VUE_APP_BASE_API == '/iws/jiju-api' ? 'iws/glweb/#' : ''
//
window.open(`${url}/screen/gwScreen`, '_blank')
window.open('iws/glweb/#/screen/gwScreen', '_blank')
//
this.$tab.closePage()
},

View File

@ -10,7 +10,7 @@ export default {
mounted() {
const url = process.env.VUE_APP_BASE_API == '/iws/jiju-api' ? 'iws/glweb/#' : ''
//
window.open(`${url}/screen/wsScreenWidescreen`, '_blank')
window.open('iws/glweb/#/screen/wsScreenWidescreen', '_blank')
//
this.$tab.closePage()
},

View File

@ -10,7 +10,7 @@ export default {
mounted() {
const url = process.env.VUE_APP_BASE_API == '/iws/jiju-api' ? 'iws/glweb/#' : ''
//
window.open(`${url}/screen/shareScreen`, '_blank')
window.open('iws/glweb/#/screen/shareScreen', '_blank')
//
this.$tab.closePage()
},

View File

@ -10,7 +10,7 @@ export default {
mounted() {
const url = process.env.VUE_APP_BASE_API == '/iws/jiju-api' ? 'iws/glweb/#' : ''
//
window.open(`${url}/screen/wsScreen`, '_blank')
window.open('iws/glweb/#//screen/wsScreen', '_blank')
//
this.$tab.closePage()
},

View File

@ -36,7 +36,6 @@
ref="formRef"
style="padding: 12px; overflow-y: auto; height: calc(100vh - 180px); width: 100%"
:model="form"
:rules="equipRules"
>
<div style="display: flex; padding-bottom: 5px">
<div style="width: 5px; background-color: #00a288; margin-right: 10px"></div>
@ -95,9 +94,6 @@
clearable
:disabled="isEdit"
/>
<!-- <div class="select-box">
<div class="no-data">暂无数据</div>
</div> -->
</el-form-item>
</el-col>
@ -292,21 +288,6 @@
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="6">
<el-form-item label="专业特征" prop="specialtyFeature">
<el-input autocomplete="off" maxlength="30" v-model="form.specialtyFeature" clearable />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="工序特征" prop="processFeature">
<el-input autocomplete="off" maxlength="30" v-model="form.processFeature" clearable />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="类目特征" prop="categoryFeature">
<el-input autocomplete="off" maxlength="30" v-model="form.categoryFeature" clearable />
</el-form-item>
</el-col> -->
</el-row>
<div style="display: flex; padding-bottom: 10px">
@ -552,13 +533,15 @@ export default {
// this.pageTitle = ''
// this.getInfo()
// }
this.processList=[];
this.categoryList=[];
},
methods: {
async openDialog(id, type) {
await this.getDeptTreeSelect()
openDialog(id, type) {
this.getDeptTreeSelect()
if (type === 'edit') {
this.pageTitle = '编辑装备'
this.isEdit = true
this.isEdit = false
this.maId = id
this.getInfo()
} else {
@ -616,7 +599,7 @@ export default {
if (item.propertyValue === '' || item.propertyValue === null || item.propertyValue === undefined) {
item.propertyValue = null
}
if (item.inputType == 3) {
if (item.inputType == 3 && item.propertyValue) {
item.propertyValue = item.propertyValue.split(',')
}
})
@ -670,25 +653,25 @@ export default {
}
})
},
majorChange(item) {
async majorChange(item) {
if (!item) {
this.processList = []
this.form.process = []
} else {
secondAndThirdLevel({ firstLevelId: item }).then((res) => {
await secondAndThirdLevel({ firstLevelId: item }).then((res) => {
if (res.code === 200) {
this.processList = this.convertToSubTree(res.data)
}
})
}
},
processChange(item) {
async processChange(item) {
console.log('🚀 ~ processChange ~ item:', item)
if (item.length === 0) {
this.categoryList = []
this.form.category = []
} else {
fourthToSixthLevel({ thirdLevelId: item[item.length - 1] }).then((res) => {
await fourthToSixthLevel({ thirdLevelId: item[item.length - 1] }).then((res) => {
if (res.code === 200) {
this.categoryList = this.convertToSubTree(res.data)
}

View File

@ -23,7 +23,7 @@
@change="(val) => changeType(val, '2')"
style="width: 240px"
>
<el-option v-for="item in fourthParentList" :key="item.id" :label="item.label" :value="item.id" />
<el-option v-for="item in fourthParentList" :key="item.id" :label="item.label" :value="item.id"/>
</el-select>
</el-form-item>
<el-form-item label="施工类型" prop="greatGrandparentId">
@ -36,7 +36,7 @@
@change="(val) => changeType(val, '3')"
style="width: 240px"
>
<el-option v-for="item in greatGrandparentList" :key="item.id" :label="item.label" :value="item.id" />
<el-option v-for="item in greatGrandparentList" :key="item.id" :label="item.label" :value="item.id"/>
</el-select>
</el-form-item>
<el-form-item label="工具类型" prop="grandparentTypeId">
@ -49,7 +49,7 @@
@change="(val) => changeType(val, '4')"
style="width: 240px"
>
<el-option v-for="item in grandparentTypeList" :key="item.id" :label="item.label" :value="item.id" />
<el-option v-for="item in grandparentTypeList" :key="item.id" :label="item.label" :value="item.id"/>
</el-select>
</el-form-item>
<el-form-item label="工具名称" prop="parentTypeId">
@ -61,7 +61,7 @@
:disabled="!queryParams.grandparentTypeId"
style="width: 240px"
>
<el-option v-for="item in parentTypeList" :key="item.id" :label="item.label" :value="item.id" />
<el-option v-for="item in parentTypeList" :key="item.id" :label="item.label" :value="item.id"/>
</el-select>
</el-form-item>
<el-form-item label="规格型号" prop="typeName">
@ -101,7 +101,7 @@
导出数据
</el-button>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" />
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"/>
</el-row>
<el-table
@ -158,7 +158,7 @@
</el-card>
<!-- 弹框 -->
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="60%" v-loading="isLoading">
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="80%" v-loading="isLoading">
<el-form
ref="dialogForm"
:model="dialogForm"
@ -170,7 +170,7 @@
:disabled="isView"
>
<el-form-item label="工具专业" prop="fourthParentName">
<el-input v-model="dialogForm.fourthParentName" placeholder="请输入工具专业" readonly style="width: 240px" />
<el-input v-model="dialogForm.fourthParentName" placeholder="请输入工具专业" readonly style="width: 240px"/>
</el-form-item>
<el-form-item label="施工类型" prop="greatGrandparentName">
<el-input
@ -189,13 +189,13 @@
/>
</el-form-item>
<el-form-item label="工具名称" prop="parentTypeName">
<el-input v-model="dialogForm.parentTypeName" placeholder="请输入工具名称" readonly style="width: 240px" />
<el-input v-model="dialogForm.parentTypeName" placeholder="请输入工具名称" readonly style="width: 240px"/>
</el-form-item>
<el-form-item label="规格型号" prop="typeName">
<el-input v-model="dialogForm.typeName" placeholder="请输入规格型号" readonly style="width: 240px" />
<el-input v-model="dialogForm.typeName" placeholder="请输入规格型号" readonly style="width: 240px"/>
</el-form-item>
<el-form-item label="工具编码" prop="toolCode">
<el-input v-model="dialogForm.toolCode" placeholder="请输入工具编码" readonly style="width: 240px" />
<el-input v-model="dialogForm.toolCode" placeholder="请输入工具编码" readonly style="width: 240px"/>
</el-form-item>
<el-form-item label="计量单位" prop="unitName">
<el-select v-model="dialogForm.unitName" placeholder="请选择计量单位" clearable style="width: 240px">
@ -250,7 +250,7 @@
/>
</el-form-item>
<el-form-item label="原始编码" prop="identifyCode">
<el-input v-model="dialogForm.identifyCode" maxlength="999" style="width: 240px" />
<el-input v-model="dialogForm.identifyCode" maxlength="999" style="width: 240px"/>
</el-form-item>
<el-form-item label="下次检验时间">
<el-date-picker
@ -262,16 +262,27 @@
style="width: 240px"
/>
</el-form-item>
<el-form-item label="工具状态">
<el-input v-model="dialogForm.statusName" readonly style="width: 240px" />
<!-- <el-form-item label="工具状态">-->
<!-- <el-input v-model="dialogForm.statusName" readonly style="width: 240px" />-->
<!-- </el-form-item>-->
<el-form-item label="产权单位" prop="companyIds">
<el-cascader
clearable
v-model="dialogForm.companyIds"
placeholder="请选择产权单位"
:options="propertyUnitList"
:props="{ label: 'label', value: 'id', children: 'children', checkStrictly: true }"
style="width: 100%"
@change="handleCompanyIdsChange"
/>
</el-form-item>
<div v-for="(item, index) in dialogForm.propertyVoList" :key="index">
<el-form-item label="特征项">
<el-input v-model="item.propertyName" placeholder="请输入特征项" style="width: 240px" />
<el-input v-model="item.propertyName" placeholder="请输入特征项" style="width: 240px"/>
</el-form-item>
<el-form-item label="特征值">
<div style="display: flex; align-items: center">
<el-input v-model="item.propertyValue" placeholder="请输入特征值" style="width: 240px" />
<el-input v-model="item.propertyValue" placeholder="请输入特征值" style="width: 240px"/>
<i
v-if="index == dialogForm.propertyVoList.length - 1 && dialogForm.propertyVoList.length < 9 && !isView"
class="el-icon-circle-plus-outline"
@ -444,7 +455,7 @@ export default {
typeName: null, //
toolCode: null,
propertyUnitIds: null,
propertyUnitId: null,
propertyUnitId: null
},
propertyUnitList: [],
fourthParentList: [],
@ -467,7 +478,7 @@ export default {
{ label: '生产厂家', prop: 'supplierName', width: 100 },
{ label: '出厂日期', prop: 'productionDate', width: 100 },
{ label: '资产原值', prop: 'originCost', width: 100 },
{ label: '原始编码', prop: 'identifyCode', width: 100 },
{ label: '原始编码', prop: 'identifyCode', width: 100 }
],
//
tableList: [],
@ -475,6 +486,8 @@ export default {
dialogTitle: '编码设备管理',
dialogVisible: false,
dialogForm: {
companyIds: '',
companyId: null,
fourthParentName: '',
greatGrandparentName: '',
grandparentTypeName: '',
@ -492,7 +505,7 @@ export default {
// fileList: [], //
certificateList: '',
inspectionList: '',
purchaseInvoicesList: '',
purchaseInvoicesList: ''
},
dialogRules: {
supplierId: [{ required: true, message: '请选择生产厂家', trigger: 'blur' }],
@ -500,23 +513,24 @@ export default {
originCost: [{ required: true, message: '请输入资产原值', trigger: 'blur' }],
identifyCode: [{ required: true, message: '请输入原始编码', trigger: 'blur' }],
certificateList: [{ required: true, message: '请上传合格证', trigger: 'change' }],
inspectionList: [{ required: true, message: '请上传检测证书', trigger: 'change' }],
inspectionList: [{ required: true, message: '请上传检测证书', trigger: 'change' }]
// purchaseInvoicesList: [{ required: true, message: '', trigger: 'change' }],
},
manufacturerSelect: [],
// FileUpload
uploadFileUrl: process.env.VUE_APP_BASE_API + '/file/upload', //
headers: {
Authorization: 'Bearer ' + getToken(),
Authorization: 'Bearer ' + getToken()
},
fileSize: 5, // (MB)
fileType: ['doc', 'docx', 'xls', 'xlsx', 'pdf', 'jpg', 'jpeg', 'png'], //
showTip: true, //
number: 0, //
number: 0 //
}
},
async created() {
await this.getDeptTreeSelect().catch(() => {})
await this.getDeptTreeSelect().catch(() => {
})
const params = this.$route.query
this.queryParams.propertyUnitId = params?.deptId || ''
const ids = []
@ -532,12 +546,21 @@ export default {
},
methods: {
handleUnitChange(value) {
this.queryParams.propertyUnitId = undefined
if (value.length === 0) {
this.queryParams.propertyUnitId = undefined
return
}
this.queryParams.propertyUnitId = value[value.length - 1]
},
handleCompanyIdsChange(value) {
if (value.length === 0) {
this.dialogForm.companyIds = undefined
return
}
this.dialogForm.companyId = value[value.length - 1]
},
//
async getDeptTreeSelect() {
const res = await deptTreeSelect()
@ -585,6 +608,7 @@ export default {
this.queryParams.pageSize = 10
this.queryParams.parentId = '0'
this.queryParams.level = '1'
this.queryParams.propertyUnitId = undefined
this.$refs.queryForm.resetFields()
this.getList()
},
@ -655,9 +679,9 @@ export default {
this.download(
'/material-mall/toolLedger/export',
{
...this.queryParams,
...this.queryParams
},
`编码工具台账_${new Date().getTime()}.xlsx`,
`编码工具台账_${new Date().getTime()}.xlsx`
)
},
@ -666,13 +690,14 @@ export default {
try {
const res = await getManufacturerSelectApi()
this.manufacturerSelect = res.data
} catch (error) {}
} catch (error) {
}
},
handleProperty(type, index) {
if (type == 'add') {
this.dialogForm.propertyVoList.push({
propertyName: '',
propertyValue: '',
propertyValue: ''
})
} else {
this.dialogForm.propertyVoList.splice(index, 1)
@ -688,13 +713,21 @@ export default {
this.$refs.dialogForm.resetFields()
//
this.dialogForm = { ...this.dialogForm, ...JSON.parse(JSON.stringify(row)) }
const ids = []
if (row?.parentId) {
ids.push(row.parentId)
}
if (row?.propertyUnitId) {
ids.push(row.propertyUnitId)
}
this.dialogForm.companyIds = [...ids.map(Number)]
//
const statusMap = { 0: '在库', 1: '在用', 2: '在修', 3: '已报废' }
this.dialogForm.statusName = statusMap[this.dialogForm.status] || '未知状态'
if (!this.dialogForm.propertyVoList || this.dialogForm.propertyVoList.length === 0) {
this.dialogForm.propertyVoList.push({
propertyName: '',
propertyValue: '',
propertyValue: ''
})
}
@ -764,7 +797,7 @@ export default {
const newFile = {
name: res.data.url.split('/').pop(),
url: res.data.url,
uid: file.uid,
uid: file.uid
}
this.dialogForm.fileList.push(newFile)
this.$message.success('文件上传成功')
@ -778,7 +811,7 @@ export default {
this.$confirm('确定要删除该文件吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
type: 'warning'
})
.then(() => {
this.dialogForm.fileList.splice(index, 1)
@ -835,7 +868,7 @@ export default {
const parts = item.split('/')
return {
fileName: parts[parts.length - 1],
fileUrl: item,
fileUrl: item
}
})
console.log('🚀 ~ handleSubmit ~ certificates:', certificates)
@ -850,7 +883,7 @@ export default {
const parts = item.split('/')
return {
fileName: parts[parts.length - 1],
fileUrl: item,
fileUrl: item
}
})
console.log('🚀 ~ handleSubmit ~ inspectionReports:', inspectionReports)
@ -865,7 +898,7 @@ export default {
const parts = item.split('/')
return {
fileName: parts[parts.length - 1],
fileUrl: item,
fileUrl: item
}
})
console.log('🚀 ~ handleSubmit ~ purchaseInvoices:', purchaseInvoices)
@ -875,14 +908,14 @@ export default {
...this.dialogForm,
certificates,
inspectionReports,
purchaseInvoices,
purchaseInvoices
// fileList: this.dialogForm.fileList.map(file => file.url).join(',')
}
console.log('🚀 ~ submitForm:', submitForm)
await updateByIdApi(submitForm)
this.$message({
type: 'success',
message: '操作成功!',
message: '操作成功!'
})
this.dialogVisible = false
this.getList()
@ -892,8 +925,8 @@ export default {
} finally {
this.isLoading = false
}
},
},
}
}
}
</script>
@ -966,10 +999,12 @@ export default {
//
::v-deep .file-action .el-link {
color: #f56c6c;
&:hover {
color: #ff4d4f;
}
}
.content-box {
border-radius: 8px;
//height: calc(100vh - 290px);
@ -984,6 +1019,7 @@ export default {
padding: 20px;
}
}
::v-deep .el-input-number.is-without-controls .el-input__inner {
text-align: left;
}

View File

@ -18,7 +18,7 @@ module.exports = {
// 部署生产环境和开发环境下的URL。
// 默认情况下Vue CLI 会假设你的应用是被部署在一个域名的根路径上
// 例如 https://www.bonus.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.bonus.vip/admin/,则设置 baseUrl 为 /admin/。
publicPath: process.env.VUE_APP_BASE_API == '/iws/jiju-api' ? '/iws/glweb/' : '/', // 宏源打包时无需更改
publicPath: process.env.VUE_APP_BASE_API == '/iws/jiju-api' ? '/iws/glweb/' : '/iws/glweb/', // 宏源打包时无需更改
// 在npm run build 或 yarn build 时 生成文件的目录名称要和baseUrl的生产环境路径一致默认dist
outputDir: 'dist',
// 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
@ -29,7 +29,7 @@ module.exports = {
productionSourceMap: false,
// webpack-dev-server 相关配置
devServer: {
host: '0.0.0.0',
host: '127.0.0.1',
port: port,
open: true,
proxy: {
@ -38,9 +38,9 @@ module.exports = {
// target: `http://localhost:18080`,
// target: `http://192.168.0.96:28080`,//马
// target: `http://192.168.0.110:18080`,//洪
// target: `http://192.168.0.41:28080`,//蒋
target: `http://127.0.0.1:28080`,//蒋
// target: `http://36.33.26.201:17788/proxyApi`, //测试
target: `http://36.33.26.201:21999/prod-api`, //测试
//target: `http://36.33.26.201:21999/prod-api`, //测试
// target: `http://192.168.137.1:18080`,//
changeOrigin: true,
pathRewrite: {