装备新增

This commit is contained in:
zzyuan 2024-11-22 14:23:41 +08:00
parent f9b094594d
commit 491edf48db
4 changed files with 641 additions and 13 deletions

View File

@ -0,0 +1,358 @@
<template>
<div class="app-container">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary" size="mini"
icon="el-icon-back" @click="backList"
>取消</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning" plain
icon="el-icon-download" size="mini"
>存草稿</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
icon="el-icon-check"
size="mini"
>上架</el-button>
</el-col>
</el-row>
<el-form :model="formData" ref="formData" size="small" :inline="true" label-width="130px" style="margin-left: 40px;">
<el-row :gutter="24" class="mb8">
<el-form-item label="装备名称:" prop="equipmentName">
<el-input
v-model="formData.equipmentName"
placeholder="请输入装备名称"
clearable maxlength="20"
style="width: 1100px;"
/>
</el-form-item>
</el-row>
<el-row :gutter="24" class="mb8">
<el-form-item label="装备类目:" prop="typeId1">
<el-select v-model="formData.typeId1"
placeholder="一级分类" clearable>
<el-option v-for="dict in equipmentTypeList"
:key="dict.value"
:label="dict.label"
:value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="typeId2">
<el-select v-model="formData.typeId2"
placeholder="二级分类" clearable>
<el-option v-for="dict in equipmentTypeList"
:key="dict.value"
:label="dict.label"
:value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="typeId3">
<el-select v-model="formData.typeId3"
placeholder="三级分类" clearable>
<el-option v-for="dict in equipmentTypeList"
:key="dict.value"
:label="dict.label"
:value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="typeId4">
<el-select v-model="formData.typeId4"
placeholder="四级分类" clearable>
<el-option v-for="dict in equipmentTypeList"
:key="dict.value"
:label="dict.label"
:value="dict.value"/>
</el-select>
</el-form-item>
</el-row>
<el-row :gutter="24" class="mb8">
<el-form-item label="装备所在地:" prop="local1">
<el-select v-model="formData.local1"
placeholder="所在省份" clearable>
<el-option v-for="dict in equipmentTypeList"
:key="dict.value"
:label="dict.label"
:value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="local2">
<el-select v-model="formData.local2"
placeholder="所在市" clearable>
<el-option v-for="dict in equipmentTypeList"
:key="dict.value"
:label="dict.label"
:value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="local3">
<el-select v-model="formData.local3"
placeholder="所在县" clearable>
<el-option v-for="dict in equipmentTypeList"
:key="dict.value"
:label="dict.label"
:value="dict.value"/>
</el-select>
</el-form-item>
</el-row>
<el-row :gutter="24" class="mb8">
<el-col :span="10">
<el-form-item label="装备编号:" prop="equipmentCode">
<el-input
v-model="formData.equipmentCode"
placeholder="请输入装备编号"
clearable maxlength="20"
style="width: 400px;"
/>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="装备品牌:" prop="equipmentBrand">
<el-input
v-model="formData.equipmentBrand"
placeholder="请输入装备品牌"
clearable maxlength="20"
style="width: 400px;"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24" class="mb8">
<el-col :span="10">
<el-form-item label="出厂日期:" prop="productionTime">
<el-date-picker
v-model="formData.productionTime"
placeholder="请选择出厂日期"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetime" style="width: 400px;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="租赁价格(天/元)" prop="leasePrice">
<el-input
v-model="formData.leasePrice"
placeholder="请输入租赁价格"
clearable maxlength="20"
style="width: 400px;"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24" class="mb8">
<el-col :span="10">
<el-form-item label="联系人:" prop="userName">
<el-input
v-model="formData.userName"
placeholder="请输入联系人"
clearable maxlength="20"
style="width: 400px;"
/>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="联系电话:" prop="phone">
<el-input
v-model="formData.phone"
placeholder="请输入联系电话"
clearable maxlength="20"
style="width: 400px;"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24" class="mb8">
<el-col :span="10">
<el-form-item label="整机重量(KG)" prop="weight">
<el-input
v-model="formData.weight"
placeholder="请输入整机重量"
clearable maxlength="20"
style="width: 400px;"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24" class="mb8">
<span style="color: #606266;font-size: 14px;font-weight: 600;margin-left: 20px;">添加描述:</span>
<span style="color: rgb(255, 59, 48);font-size: 12px;margin-left: 10px;">:添加不少于2个关于装备性能外观等相关的描述如档位标定功率规格等</span>
</el-row>
<el-row :gutter="24" class="mb8">
<el-col :span="10">
<div v-for="(item,index) in describeList" :key="index">
<el-input
v-model="item.label"
placeholder="描述名称"
clearable maxlength="20"
style="width: 120px;"
/>
<span>:</span>
<el-input
v-model="item.describe"
placeholder="描述详情"
clearable maxlength="20"
style="width: 400px;"
/>
</div>
</el-col>
</el-row>
</el-form>
<!-- 图片查看弹窗 -->
<el-dialog :visible.sync="dialogVisible" width="500px" height="500px">
<img width="100%" height="500px" :src="dialogImageUrl" />
</el-dialog>
</div>
</template>
<script>
import { getToken } from "@/utils/auth";
export default {
name: "",
// dicts: ["purchase_task_status"],
data() {
return {
Id:"",
isView: false,
equipmentTypeList: [], //
materialModelList: [], //
supplierList: [], //
fixCodeList: ["否", "是"],
formData: {
typeId: undefined,
supplierId: undefined,
productionTime: undefined,
},
describeList:[
{label:"",describe:""},{label:"",describe:""}
],//
//
dialogImageUrl: "",
dialogVisible: false,
//
upload: {
//
headers: { Authorization: "Bearer " + getToken() },
//
url: process.env.VUE_APP_BASE_API + "/file/upload",
},
};
},
mounted() {
// const Id = this.$route.query && this.$route.query.Id;
// const isView = this.$route.query && this.$route.query.isView;
// this.Id = Id;
// if (isView == "true") {
// this.isView = true;
// } else {
// this.isView = false;
// }
// this.resetForm("formData");
// console.log(this.isView);
// this.getSupplierList()
},
methods: {
//
backList() {
const obj = { path: "/lessor/equipment" };
this.$tab.closeOpenPage(obj);
},
// getDeviceType() {
// getDeviceType({ level: 4, skipPermission: 1 }).then((response) => {
// let matModelRes = response.data;
// this.materialModelList = matModelRes.map((item) => {
// return {
// label: item.typeName,
// value: item.typeId,
// };
// });
// });
// },
// getSupplierList() {
// getManufacturerSelect().then((response) => {
// let arrRes = response.rows;
// this.supplierList = arrRes.map((item) => {
// return {
// label: item.supplier,
// value: item.supplierId,
// };
// });
// });
// },
//
beforeFileUpload(row) {
this.rowData.fileType = row.fileType;
},
//
handleFileSuccess(response, file, fileList) {
if (response.code == 200) {
let param = {
taskId: this.taskId,
taskType: "0",
name: response.data.name,
url: response.data.url,
modelId: this.rowData.typeId,
fileType: this.rowData.fileType,
};
console.log(param);
uploadPurchaseFile(param)
.then((response) => {
this.$modal.msgSuccess("上传成功");
this.getFileData();
})
.catch(() => {
this.$modal.msgError("上传失败");
});
}
},
//
picturePreview(file) {
this.dialogImageUrl = file.url;
const parts = file.name.split(".");
const extension = parts.pop();
if (extension === "doc" || extension === "docx" || extension === "pdf") {
const windowName = file.name;
window.open(file.url, windowName);
} else {
this.dialogVisible = true;
}
},
},
};
</script>
<style lang="scss" scoped>
.uploadImg {
padding-top: 20px;
display: flex;
align-items: center;
justify-content: center;
}
.deviceCode {
margin-top: 10px;
padding-bottom: 20px;
font-size: 18px;
}
::v-deep.el-table .fixed-width .el-button--mini {
width: 60px !important;
margin-bottom: 10px;
}
//css
::v-deep.disabled {
.el-upload--picture-card {
display: none;
}
}
</style>

View File

@ -68,11 +68,8 @@
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="success" plain type="success" plain
size="mini" size="mini" @click="equipmentAdd"
:disabled="multiple" >装备新建</el-button>
>
装备新建
</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@ -140,7 +137,7 @@
</template> </template>
<script> <script>
import { getPurchaseList } from "@/api/purchase/goodsAccept"; // import { getPurchaseList } from "@/api/purchase/goodsAccept";
export default { export default {
name: "", name: "",
// dicts: ['purchase_task_status'], // dicts: ['purchase_task_status'],
@ -188,11 +185,11 @@
this.queryParams.startTime=undefined this.queryParams.startTime=undefined
this.queryParams.endTime=undefined this.queryParams.endTime=undefined
} }
getPurchaseList(this.queryParams).then(response => { // getPurchaseList(this.queryParams).then(response => {
this.tableList = response.data.rows; // this.tableList = response.data.rows;
this.total = response.data.total; // this.total = response.data.total;
this.loading = false; // this.loading = false;
}); // });
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
resetQuery() { resetQuery() {
@ -212,6 +209,14 @@
this.single = selection.length != 1 this.single = selection.length != 1
this.multiple = !selection.length this.multiple = !selection.length
}, },
//
equipmentAdd(){
let query = {}
this.$tab.closeOpenPage({
path: '/lessor/equipmentDetail',
query,
})
},
// //
handleUpdate(row){ handleUpdate(row){
console.log(row) console.log(row)

View File

@ -0,0 +1,265 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item prop="keyWord">
<el-input
v-model="queryParams.keyWord"
placeholder="请输入订单名称"
clearable
@keyup.enter.native="handleQuery"
maxlength="20"
/>
</el-form-item>
<el-form-item prop="keyWord1">
<el-input
v-model="queryParams.keyWord"
placeholder="请输入订单编码"
clearable
@keyup.enter.native="handleQuery"
maxlength="20"
/>
</el-form-item>
<el-form-item prop="status">
<el-select v-model="queryParams.status" placeholder="请选择订单状态" clearable>
<el-option
v-for="item in statusList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item prop="status">
<el-select v-model="queryParams.status" placeholder="请选择订单分类" clearable>
<el-option
v-for="item in statusList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item prop="status">
<el-select v-model="queryParams.status" placeholder="请选择订单型号" clearable>
<el-option
v-for="item in statusList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item prop="dateRange">
<el-date-picker
v-model="dateRange"
type="datetimerange"
value-format="yyyy-MM-dd HH:mm:ss"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="success" plain
size="mini"
:disabled="multiple"
>
订单新建
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning" plain
icon="el-icon-download"
size="mini"
>批量上架</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning" plain
icon="el-icon-download"
size="mini"
>批量下架</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="tableList" ref="multipleTable" row-key="taskId" @selection-change="handleSelectionChange" border>
<el-table-column type="selection" width="55" align="center" :reserve-selection="true" />
<el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope">
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="订单名称" align="center" prop="" width="150" :show-overflow-tooltip="true"/>
<el-table-column label="订单编码" align="center" prop="" width="150" :show-overflow-tooltip="true"/>
<el-table-column label="订单类目" align="center" prop="" width="150" :show-overflow-tooltip="true"/>
<el-table-column label="订单型号" align="center" prop="" :show-overflow-tooltip="true"/>
<el-table-column label="订单状态" align="center" prop="status" :show-overflow-tooltip="true">
<!-- <template slot-scope="scope">
<dict-tag :options="dict.type.purchase_task_status" :value="scope.row.status"/>
</template> -->
</el-table-column>
<el-table-column label="更新时间" align="center" prop="" width="150" :show-overflow-tooltip="true"/>
<el-table-column label="操作" align="center" width="250">
<template slot-scope="scope">
<el-button
size="mini"
@click="handleView(scope.row)">
查看
</el-button>
<el-button
size="mini" type="primary"
@click="handleUpdate(scope.row)">
编辑
</el-button>
<el-button
size="mini" type="warning" >
下架
</el-button>
<el-button size="mini" type="danger" >
删除
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import { getPurchaseList } from "@/api/purchase/goodsAccept";
export default {
name: "",
// dicts: ['purchase_task_status'],
data() {
return {
//
loading: false,
//
single: true,
//
multiple: true,
//
showSearch: true,
statusList:[{id:'1',name:'状态1'},{id:'2',name:'状态2'},{id:'3',name:'状态3'}],
ids:[],
//
total: 0,
//
tableList: [],
//
title: "",
//
open: false,
//
dateRange:[],
queryParams: {
pageNum: 1,
pageSize: 10,
keyWord:undefined,
status:undefined,
},
};
},
created() {
// this.getList();
},
methods: {
/** 查询列表 */
getList() {
this.loading = true;
if(this.dateRange.length>0){
this.queryParams.startTime=this.dateRange[0]
this.queryParams.endTime=this.dateRange[1]
}else{
this.queryParams.startTime=undefined
this.queryParams.endTime=undefined
}
getPurchaseList(this.queryParams).then(response => {
this.tableList = response.data.rows;
this.total = response.data.total;
this.loading = false;
});
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.dateRange=[]
this.queryParams.keyWord=null;
this.handleQuery();
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.taskId)
this.single = selection.length != 1
this.multiple = !selection.length
},
//
handleUpdate(row){
console.log(row)
// let query = { Id:row.id,taskId: row.taskId,isView:"false" }
// this.$tab.closeOpenPage({
// path: '/purchase/goodsAcceptDetail',
// query,
// })
},
//
handleView(row){
console.log(row)
// let query = { Id:row.id,taskId: row.taskId,isView:"true" }
// this.$tab.closeOpenPage({
// path: '/purchase/goodsAcceptDetail',
// query,
// })
},
handleExport() {
// this.download('/material/ma_machine/export', {
// ...this.queryParams
// }, `_${new Date().getTime()}.xlsx`)
},
}
};
</script>
<style lang="scss" scoped>
.uploadImg {
padding-top: 20px;
display: flex;
align-items: center;
justify-content: center;
}
.deviceCode {
margin-top: 10px;
padding-bottom: 20px;
font-size: 18px;
}
::v-deep.el-table .fixed-width .el-button--mini {
width: 60px !important;
margin-bottom: 10px;
}
//css
::v-deep.disabled {
.el-upload--picture-card {
display: none;
}
}
</style>

View File

@ -36,9 +36,9 @@ module.exports = {
// detail: https://cli.vuejs.org/config/#devserver-proxy // detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: { [process.env.VUE_APP_BASE_API]: {
// target: `http://localhost:18080`, // target: `http://localhost:18080`,
target: `http://192.168.2.246:18080`,//马 // target: `http://192.168.2.246:18080`,//马
// target: `http://192.168.0.110:18080`,//洪 // target: `http://192.168.0.110:18080`,//洪
// target: `http://192.168.0.234:18080`,//阮 target: `http://192.168.0.234:18080`,//阮
// target: `http://192.168.137.1:18080`,// // target: `http://192.168.137.1:18080`,//
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {