From c5109dd484be07f6c49a3c4c4df7ae79b89f4fb0 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 06 六月 2025 19:18:57 +0800
Subject: [PATCH] 开发更新
---
admin/src/views/stock/components/newMaterial.vue | 201 +++++++++++++++++++++++++++----------------------
1 files changed, 111 insertions(+), 90 deletions(-)
diff --git a/admin/src/views/stock/components/newMaterial.vue b/admin/src/views/stock/components/newMaterial.vue
index 519bf22..6f887f4 100644
--- a/admin/src/views/stock/components/newMaterial.vue
+++ b/admin/src/views/stock/components/newMaterial.vue
@@ -9,67 +9,49 @@
<div class="main_content">
<el-form :model="form" label-position="top" ref="form" :rules="rules">
<div class="list">
- <el-form-item label="鐗╂枡缂栫爜" prop="contractId">
- <el-input v-model="form.renterName" placeholder="涓嶈緭鍏ョ郴缁熶細鑷姩缂栫爜" v-trim />
+ <el-form-item label="鐗╂枡缂栫爜" prop="code">
+ <el-input v-model="form.code" :disabled="form.id" placeholder="涓嶈緭鍏ョ郴缁熶細鑷姩缂栫爜" v-trim />
</el-form-item>
- <el-form-item label="鐗╂枡鍚嶇О" prop="renterName">
- <el-input v-model="form.renterName" placeholder="璇疯緭鍏�" v-trim />
+ <el-form-item label="鐗╂枡鍚嶇О" prop="name">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏�" v-trim />
</el-form-item>
- <el-form-item label="鐗╂枡鍒嗙被" prop="ywContractRoomList">
- <el-select v-model="form.ywContractRoomList" placeholder="璇烽�夋嫨">
- <el-option
- v-for="(item, index) in houseList"
- :key="index"
- :value="item.id"
- :label="item.projectName + item.buildingName + item.floorName + item.roomName" />
- </el-select>
+ <el-form-item label="鐗╂枡鍒嗙被" prop="cateArr">
+ <el-cascader
+ v-model="form.cateArr"
+ :options="cateList"
+ @change="getCateVal"
+ :props="{ label: 'name', value: 'id', children: 'childCategoryList' }"
+ placeholder="璇烽�夋嫨" />
</el-form-item>
- <el-form-item label="鏉$爜" prop="costType">
- <el-input v-model="form.renterName" placeholder="璇疯緭鍏�" v-trim />
+ <el-form-item label="鏉$爜" prop="qrcode">
+ <el-input v-model="form.qrcode" placeholder="璇疯緭鍏�" v-trim />
</el-form-item>
- <el-form-item label="鍝佺墝" prop="date">
- <el-input v-model="form.renterName" placeholder="璇疯緭鍏�" v-trim />
+ <el-form-item label="鍝佺墝" prop="brand">
+ <el-input v-model="form.brand" placeholder="璇疯緭鍏�" v-trim />
</el-form-item>
- <el-form-item label="瑙勬牸鍨嬪彿" prop="totleFee">
- <el-input v-model="form.renterName" placeholder="璇疯緭鍏�" v-trim />
+ <el-form-item label="瑙勬牸鍨嬪彿" prop="attr">
+ <el-input v-model="form.attr" placeholder="璇疯緭鍏�" v-trim />
</el-form-item>
- <el-form-item label="瀹夊叏搴撳瓨锛堜笅闄愶級" prop="planPayDate">
- <el-input v-model="form.renterName" placeholder="璇疯緭鍏�" v-trim />
+ <el-form-item label="瀹夊叏搴撳瓨锛堜笅闄愶級" prop="minStock">
+ <el-input v-model="form.minStock" placeholder="璇疯緭鍏�" v-trim />
</el-form-item>
- <el-form-item label="瀹夊叏搴撳瓨锛堜笂闄愶級" prop="companyId">
- <el-input v-model="form.renterName" placeholder="璇疯緭鍏�" v-trim />
+ <el-form-item label="瀹夊叏搴撳瓨锛堜笂闄愶級" prop="maxStock">
+ <el-input v-model="form.maxStock" placeholder="璇疯緭鍏�" v-trim />
</el-form-item>
- <el-form-item label="鍗曚綅" prop="companyId">
- <el-input v-model="form.renterName" placeholder="璇疯緭鍏�" v-trim />
+ <el-form-item label="鍗曚綅" prop="unitName">
+ <el-input v-model="form.unitName" placeholder="璇疯緭鍏�" v-trim />
</el-form-item>
- <el-form-item label="鎵�灞為」鐩�" prop="companyId">
- <el-select v-model="form.ywContractRoomList" placeholder="璇烽�夋嫨">
- <el-option
- v-for="(item, index) in houseList"
- :key="index"
- :value="item.id"
- :label="item.projectName + item.buildingName + item.floorName + item.roomName" />
- </el-select>
- </el-form-item>
- <el-form-item label="鎵�灞炴埧婧�" prop="companyId">
- <el-select v-model="form.ywContractRoomList" placeholder="璇烽�夋嫨">
- <el-option
- v-for="(item, index) in houseList"
- :key="index"
- :value="item.id"
- :label="item.projectName + item.buildingName + item.floorName + item.roomName" />
- </el-select>
- </el-form-item>
- <el-form-item label="鐗╂枡鐓х墖" prop="companyId">
+ <el-form-item label="鐗╂枡鐓х墖" prop="multifile">
<el-upload
- class="upload-demo"
- :show-file-list="false"
- :data="uploadData"
:action="uploadImgUrl"
+ :file-list="fileList"
+ :data="uploadData"
+ :limit="1"
+ list-type="picture-card"
+ :on-exceed="exceed"
:on-success="uploadAvatarSuccess"
- :before-upload="beforeUpload"
- :on-error="uploadError">
- <el-button icon="el-icon-plus" plain>涓婁紶</el-button>
+ :on-remove="dele">
+ <i class="el-icon-plus"></i>
</el-upload>
</el-form-item>
<el-form-item style="width: 100%;" label="澶囨敞" prop="remark">
@@ -85,6 +67,7 @@
<script>
import GlobalWindow from '@/components/common/GlobalWindow'
import BaseOpera from '@/components/base/BaseOpera'
+ import { fetchList } from '@/api/business/category.js'
export default {
name: 'newMaterial',
components: {
@@ -92,68 +75,106 @@
},
extends: BaseOpera,
data () {
+ var validateCateArr = (rule, value, callback) => {
+ if (value.length === 0) {
+ callback(new Error('璇烽�夋嫨鐗╂枡鍒嗙被'));
+ } else {
+ callback();
+ }
+ };
return {
form: {
- contractId: '',
- renterName: '',
- renterId: '',
- costType: '',
- type: '',
- companyId: '',
+ id: null,
+ code: '',
+ name: '',
+ parentCateId: '',
+ cateId: '',
+ cateArr: [],
+ multifile: null,
remark: '',
- startDate: '',
- endDate: '',
- totleFee: '',
- planPayDate: '',
- multifileList: [],
- ywContractRoomList: [],
- date: [],
- RoomName: ''
+ unitName: '',
+ maxStock: '',
+ minStock: '',
+ attr: '',
+ brand: '',
+ qrcode: ''
},
- rules: [],
- loadingInstance: null,
+ rules: {
+ name: [
+ { required: true, message: '璇疯緭鍏ョ墿鏂欏悕绉�', trigger: 'blur' }
+ ],
+ cateArr: [
+ { required: true, validator: validateCateArr, trigger: 'blur' }
+ ],
+ qrcode: [
+ { required: true, message: '璇疯緭鍏ユ潯鐮�', trigger: 'blur' }
+ ]
+ },
+ cateList: [],
uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/uploadBatch',
fileList: [],
uploadData: {
- folder: 'YW_CONTRACT_BILL'
- },
+ folder: 'YW_MATERIAL'
+ }
}
+ },
+ created () {
+ this.config({
+ api: '/ywMaterial'
+ })
},
methods: {
open (title, target) {
this.title = title
+ this.fileList = []
this.visible = true
- },
- dele (imgaddr) {
- this.form.multifileList.forEach((item, index) => {
- if (imgaddr === item.imgaddr) {
- this.form.multifileList.splice(index, 1)
+ this.getCategry()
+ // 鏂板缓
+ if (target == null) {
+ this.$nextTick(() => {
+ this.$refs.form.resetFields()
+ this.form[this.configData['field.id']] = null
+ })
+ return
+ }
+ // 缂栬緫
+ this.$nextTick(() => {
+ for (const key in this.form) {
+ this.form[key] = target[key]
+ }
+ if (this.form.multifile) {
+ this.fileList = [
+ { url: this.form.multifile.fileurlFull, ...this.form.multifile }
+ ]
}
})
},
- beforeUpload (file) {
- this.loadingInstance = Loading.service({
- lock: true,
- text: 'Loading',
- spinner: 'el-icon-loading',
- background: 'rgba(0, 0, 0, 0.7)'
+ exceed() {
+ this.$message.warning('鍙兘涓婁紶涓�寮犲浘鐗囷紒')
+ },
+ getCateVal(e) {
+ this.form.parentCateId = e[0]
+ this.form.cateId = e[1]
+ },
+ getCategry() {
+ fetchList({
+ capacity: 1000,
+ model: {
+ type: 7
+ },
+ page: 1
+ }).then(res => {
+ this.cateList = res.records
})
},
- uploadError () {
- this.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
- if (this.loadingInstance) {
- this.loadingInstance.close()
- }
- })
+ dele (e) {
+ this.fileList = []
+ this.form.multifile = null
},
uploadAvatarSuccess (file) {
- this.$nextTick(() => {
- if (this.loadingInstance) {
- this.loadingInstance.close()
- }
- })
const item = file.data[0]
- this.form.multifileList.push({ ...item, fileurl: item.imgaddr, name: item.originname, userName: this.userInfo.realname, createTime: this.getDay() })
+ this.fileList.push({ ...item, fileurl: item.imgaddr, name: item.originname })
+ this.form.multifile = { ...item, fileurl: item.imgaddr, name: item.originname }
}
}
}
--
Gitblit v1.9.3