From 73ac28e7bed2c94ccdcb6b96c1e026d6cc9db68d Mon Sep 17 00:00:00 2001 From: liukangdong <898885815@qq.com> Date: 星期五, 10 一月 2025 10:51:38 +0800 Subject: [PATCH] ll --- admin/src/views/stock/check.vue | 9 admin/src/views/stock/in.vue | 42 ++ admin/src/views/statistics/platformRecord.vue | 4 admin/src/views/finance/payments.vue | 13 admin/src/views/stock/components/InEdit.vue | 138 +++++++++ admin/src/views/statistics/platformStatic.vue | 1 admin/src/views/system/smsMessage.vue | 7 admin/src/views/finance/account.vue | 12 admin/src/views/stock/components/InDetail.vue | 164 ++++++++++ admin/src/views/finance/company.vue | 4 admin/src/views/stock/components/OutEdit.vue | 138 +++++++++ admin/src/views/stock/components/AssetSel.vue | 125 ++++++++ admin/src/views/system/publicMsg.vue | 1 admin/src/views/stock/out.vue | 42 ++ admin/src/views/operation/device.vue | 4 admin/src/views/stock/assetList.vue | 1 admin/src/views/stock/record.vue | 1 admin/src/views/stock/asset.vue | 9 admin/src/views/stock/query.vue | 1 admin/src/views/stock/components/OutDetail.vue | 164 ++++++++++ 20 files changed, 832 insertions(+), 48 deletions(-) diff --git a/admin/src/views/finance/account.vue b/admin/src/views/finance/account.vue index 1d60573..d8b6ae1 100644 --- a/admin/src/views/finance/account.vue +++ b/admin/src/views/finance/account.vue @@ -9,7 +9,7 @@ <el-table-column prop="title" label="鏀舵敮鏉$洰" min-width="100" show-overflow-tooltip /> <el-table-column prop="companyName" label="鏀舵鍏徃" min-width="100" show-overflow-tooltip /> <el-table-column label="璐︽埛绫诲瀷" min-width="100" show-overflow-tooltip> - <template v-slot="{row}"> + <template v-slot="{ row }"> <span v-if="row.type == 0">瀵瑰叕</span> <span v-if="row.type == 1">涓汉</span> </template> @@ -19,7 +19,8 @@ <el-table-column prop="bankNo" label="閾惰璐﹀彿" min-width="100" show-overflow-tooltip /> <el-table-column prop="status" label="鐘舵��" min-width="100" show-overflow-tooltip> <template v-slot="scope"> - <el-switch v-model="scope.row.status" @change="e =>changeStatus(scope.row)" :active-value="0" :inactive-value="1"> + <el-switch v-model="scope.row.status" @change="e => changeStatus(scope.row)" :active-value="0" + :inactive-value="1"> </el-switch> </template> </el-table-column> @@ -117,13 +118,13 @@ this.getList() }) }, - getCompany(){ + getCompany() { companyGetList({ - model: {type: 2}, + model: { type: 2 }, capacity: 9999, page: 1 }).then(res => { - this.queryFormConfig.formItems[1].options = res.records || [] + this.queryFormConfig.formItems[1].options = res.records || [] }) }, handleEdit(row) { @@ -156,6 +157,7 @@ }, handleSizeChange(capacity) { this.pagination.pageSize = capacity + this.getList() } } } diff --git a/admin/src/views/finance/company.vue b/admin/src/views/finance/company.vue index 5f2b7ee..d8f5aed 100644 --- a/admin/src/views/finance/company.vue +++ b/admin/src/views/finance/company.vue @@ -13,7 +13,8 @@ <el-table-column prop="accountNum" label="鏀舵敮璐︽埛鏁伴噺" min-width="100" show-overflow-tooltip /> <el-table-column prop="status" label="鐘舵��" min-width="100" show-overflow-tooltip> <template v-slot="scope"> - <el-switch v-model="scope.row.status" @change="e => changeStatus(scope.row)" :active-value="0" :inactive-value="1"> + <el-switch v-model="scope.row.status" @change="e => changeStatus(scope.row)" :active-value="0" + :inactive-value="1"> </el-switch> </template> </el-table-column> @@ -132,6 +133,7 @@ }, handleSizeChange(capacity) { this.pagination.pageSize = capacity + this.getList() } } } diff --git a/admin/src/views/finance/payments.vue b/admin/src/views/finance/payments.vue index 212bc99..2be18ee 100644 --- a/admin/src/views/finance/payments.vue +++ b/admin/src/views/finance/payments.vue @@ -2,7 +2,7 @@ <div class="main_app"> <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> <div class="mt20"> -<!-- <el-button v-permissions="['business:ywpatrolline:create']">瀵煎嚭</el-button>--> + <!-- <el-button v-permissions="['business:ywpatrolline:create']">瀵煎嚭</el-button>--> </div> <el-table v-loading="loading" :data="list" stripe> <el-table-column prop="customerName" label="瀹㈡埛鍚嶇О" min-width="100" show-overflow-tooltip /> @@ -10,7 +10,7 @@ <el-table-column label="鎴垮彿" min-width="100" show-overflow-tooltip> <template slot-scope="{row}"> <div style="display: flex; flex-direction: column;" v-if="row.roomPathName"> - <span v-for="(item, index) in row.roomPathName.split(';')" :key="index">{{item}}</span> + <span v-for="(item, index) in row.roomPathName.split(';')" :key="index">{{ item }}</span> </div> </template> </el-table-column> @@ -123,7 +123,7 @@ this.getList() }, methods: { - isShow (status, contractStatus) { + isShow(status, contractStatus) { if (status === 1) return false if (contractStatus === '3' || contractStatus === '4') return false return true @@ -150,7 +150,7 @@ this.loading = false }) }, - closeDW (id) { + closeDW(id) { this.$confirm('纭鍏抽棴姝ゆ祦姘村悧?', '鎻愮ず', { confirmButtonText: '纭畾', cancelButtonText: '鍙栨秷', @@ -161,8 +161,8 @@ this.getList() }) }).catch(() => { - - }); + + }) }, handleDel(row) { let message = `纭鍒犻櫎璇ヨ褰曞悧?` @@ -185,6 +185,7 @@ }, handleSizeChange(capacity) { this.pagination.pageSize = capacity + this.getList() } } } diff --git a/admin/src/views/operation/device.vue b/admin/src/views/operation/device.vue index 9025984..770219c 100644 --- a/admin/src/views/operation/device.vue +++ b/admin/src/views/operation/device.vue @@ -21,7 +21,8 @@ </el-table-column> <el-table-column label="鎿嶄綔" min-width="130" fixed="right"> <template slot-scope="{row}"> - <el-button type="text" @click="handleDetail(row)" v-permissions="['business:category:update']">鏌ョ湅璇︽儏</el-button> + <el-button type="text" @click="handleDetail(row)" + v-permissions="['business:category:update']">鏌ョ湅璇︽儏</el-button> <el-button type="text" @click="handleEdit(row)" icon="el-icon-edit" v-permissions="['business:category:update']">缂栬緫</el-button> <el-button type="text" @click="handleDel(row)" icon="el-icon-delete" @@ -146,6 +147,7 @@ }, handleSizeChange(capacity) { this.pagination.pageSize = capacity + this.getList() } } } diff --git a/admin/src/views/statistics/platformRecord.vue b/admin/src/views/statistics/platformRecord.vue index 49f98e1..5659e49 100644 --- a/admin/src/views/statistics/platformRecord.vue +++ b/admin/src/views/statistics/platformRecord.vue @@ -9,8 +9,7 @@ <el-table-column prop="param1" label="浣滀笟寮�濮�" min-width="100" show-overflow-tooltip /> <el-table-column prop="param2" label="浣滀笟缁撴潫" min-width="100" show-overflow-tooltip /> <el-table-column prop="workTime" label="浣滀笟鏃堕暱" min-width="100" show-overflow-tooltip /> - <el-table-column prop="name" - label="杩愯緭鍗曞彿/鍚堝悓鍙�" min-width="100" show-overflow-tooltip> + <el-table-column prop="name" label="杩愯緭鍗曞彿/鍚堝悓鍙�" min-width="100" show-overflow-tooltip> <template v-slot="scope"> <span>{{ scope.row.billCode || scope.row.contractNum }}</span> </template> @@ -131,6 +130,7 @@ }, handleSizeChange(capacity) { this.pagination.pageSize = capacity + this.getList() } } } diff --git a/admin/src/views/statistics/platformStatic.vue b/admin/src/views/statistics/platformStatic.vue index 6bec585..520748a 100644 --- a/admin/src/views/statistics/platformStatic.vue +++ b/admin/src/views/statistics/platformStatic.vue @@ -130,6 +130,7 @@ }, handleSizeChange(capacity) { this.pagination.pageSize = capacity + this.getList() } } } diff --git a/admin/src/views/stock/asset.vue b/admin/src/views/stock/asset.vue index 61d0ab4..e1535d2 100644 --- a/admin/src/views/stock/asset.vue +++ b/admin/src/views/stock/asset.vue @@ -12,7 +12,7 @@ <el-table-column prop="param1" label="澶囨敞" min-width="120" show-overflow-tooltip /> <el-table-column prop="param2" label="鐘舵��" min-width="90" show-overflow-tooltip /> <el-table-column prop="workTime" label="鎿嶄綔" min-width="100" show-overflow-tooltip> - <template v-slot="{row}"> + <template v-slot="{ row }"> <span class="primaryColor pointer">鏌ョ湅璇︽儏</span> <span class="red pointer">鍒犻櫎</span> </template> @@ -49,7 +49,7 @@ total: 0, queryFormConfig: { formItems: [ - { + { filed: 'carCodeFront', type: 'input', label: '浠撳簱鍚嶇О', @@ -123,11 +123,10 @@ }, handleSizeChange(capacity) { this.pagination.pageSize = capacity + this.getList() } } } </script> -<style> - -</style> +<style></style> diff --git a/admin/src/views/stock/assetList.vue b/admin/src/views/stock/assetList.vue index c5851ae..ace748c 100644 --- a/admin/src/views/stock/assetList.vue +++ b/admin/src/views/stock/assetList.vue @@ -132,6 +132,7 @@ }, handleSizeChange(capacity) { this.pagination.pageSize = capacity + this.getList() } } } diff --git a/admin/src/views/stock/check.vue b/admin/src/views/stock/check.vue index 86c05ec..eaebf2d 100644 --- a/admin/src/views/stock/check.vue +++ b/admin/src/views/stock/check.vue @@ -13,7 +13,7 @@ <el-table-column prop="param2" label="鍒涘缓鏃堕棿" min-width="140" show-overflow-tooltip /> <el-table-column prop="workTime" label="鐩樼偣鐘舵��" min-width="80" show-overflow-tooltip /> <el-table-column prop="workTime" label="鎿嶄綔" min-width="140" show-overflow-tooltip> - <template v-slot="{row}"> + <template v-slot="{ row }"> <span class="primaryColor pointer">鏌ョ湅璇︽儏</span> <span class="primaryColor pointer">鍙栨秷</span> <span class="primaryColor pointer">鍒犻櫎</span> @@ -51,7 +51,7 @@ total: 0, queryFormConfig: { formItems: [ - { + { filed: 'carCodeFront', type: 'input', label: '鐩樼偣鍗�', @@ -125,11 +125,10 @@ }, handleSizeChange(capacity) { this.pagination.pageSize = capacity + this.getList() } } } </script> -<style> - -</style> +<style></style> diff --git a/admin/src/views/stock/components/AssetSel.vue b/admin/src/views/stock/components/AssetSel.vue new file mode 100644 index 0000000..afbbb23 --- /dev/null +++ b/admin/src/views/stock/components/AssetSel.vue @@ -0,0 +1,125 @@ +<template> + <GlobalWindow title="閫夋嫨鐗╂枡" :visible.sync="isShowModal" :confirm-working="isLoading" width="900px" @close="close" + @confirm="confirm"> + <el-form ref="searchForm" :model="searchForm" label-width="100px" inline> + <el-form-item prop="areaType" label="鐗╂枡淇℃伅"> + <el-input v-model="searchForm.aaa" placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�/鍚嶇О" @keypress.enter.native="search"></el-input> + </el-form-item> + <el-form-item prop="areaIds" label="鐗╂枡鍒嗙被"> + <el-cascader v-model="searchForm.areaIds" @change="changeSel" placeholder="璇烽�夋嫨鐗╂枡鍒嗙被" clearable + :options="cateList" :props="{ + label: 'name', + value: 'id', + children: 'childCategoryList' + }"></el-cascader> + </el-form-item> + <span> + <el-button type="primary" @click="getList">鎼滅储</el-button> + <el-button @click="reset">閲嶇疆</el-button> + </span> + </el-form> + <!-- --> + <el-table @selection-change="handleSelectionChange" :data="list" stripe> + <el-table-column type="selection" width="55" /> + <el-table-column prop="categoryName" label="鐗╂枡缂栫爜" min-width="100px"></el-table-column> + <el-table-column prop="creatorName" label="鐗╂枡鍚嶇О" min-width="80px"></el-table-column> + <el-table-column prop="createDate" label="鏉$爜" min-width="100px"></el-table-column> + <el-table-column prop="dealUserName" label="鍝佺墝" min-width="80px"></el-table-column> + <el-table-column prop="dealUserName" label="瑙勬牸鍨嬪彿" min-width="80px"></el-table-column> + <el-table-column prop="dealUserName" label="鍗曚綅" min-width="80px"></el-table-column> + <el-table-column prop="dealUserName" label="搴撳瓨" min-width="80px"></el-table-column> + </el-table> + <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination"> + </Pagination> + </GlobalWindow> +</template> + +<script> +import BaseOpera from '@/components/base/BaseOpera' +import GlobalWindow from '@/components/common/GlobalWindow' +import Pagination from '@/components/common/Pagination' +import { fetchList as getCateList } from '@/api/business/category.js' +export default { + name: 'OperaCategoryWindow', + components: { GlobalWindow, Pagination }, + data() { + return { + // 琛ㄥ崟鏁版嵁 + searchForm: {}, + pagination: { + pageSize: 10, + page: 1, + total: 0 + }, + list: [], + selList: [], + cateList: [], + isShowModal: false, + isLoading: false, + // 楠岃瘉瑙勫垯 + rules: { + name: [{ required: true, message: '璇疯緭鍏ヤ簩绾у垎绫诲悕绉�', trigger: 'blur' }], + }, + dataList: [] + } + }, + created() { + this.initData() + }, + methods: { + confirm() { + this.$emit('change', this.selList) + this.close() + }, + handleSelectionChange(val) { + this.selList = val + }, + getList(page) { + const { pagination, searchForm } = this + this.listLoading = true + if(page){pagination.page = page} + fetchList({ + capacity: pagination.pageSize, + page: pagination.page, + model: {...searchForm} + }).then((res) => { + this.listLoading = false + this.list = res.records + this.pagination.total = res.total || 0 + }, () => { + this.listLoading = false + }) + }, + initData() { + getCateList({ + model: { type: 3 }, + capacity: 1000, + page: 1, + }).then(res => { + this.cateList = res.records || [] + }) + }, + changeSel(e) { + if (e && e.length == 2) { + this.$set(this.searchForm, 'cateId', e[1]) + } else { + this.$set(this.searchForm, 'cateId', '') + } + }, + reset() { + this.searchForm = {} + this.pagination.pageSize = 10 + this.pagination.page = 1 + this.getList() + }, + handleSizeChange(capacity) { + this.pagination.pageSize = capacity + this.getList() + }, + close() { + this.isShowModal = false + this.$emit('close') + }, + } +} +</script> diff --git a/admin/src/views/stock/components/InDetail.vue b/admin/src/views/stock/components/InDetail.vue new file mode 100644 index 0000000..ad73ba4 --- /dev/null +++ b/admin/src/views/stock/components/InDetail.vue @@ -0,0 +1,164 @@ +<template> + <GlobalWindow width="960px" title="鍑哄簱鍗曡鎯�" :visible.sync="visible" :confirm-working="isWorking" @close="close" + @confirm="confirm"> + <div class="main"> + <div class="title"> + <span>宸ュ崟璇︽儏</span> + </div> + <div class="main_content"> + <div class="list"> + <div class="item"> + <div class="la">鍑哄簱浠撳簱</div> + <div class="val">{{ info.projectName }}</div> + </div> + <div class="item"> + <div class="la">鍑哄簱鏃ユ湡</div> + <div class="val">{{ info.categoryName }}</div> + </div> + <div class="item"> + <div class="la">鍑哄簱绫诲瀷</div> + <div class="val">{{ info.creatorName }}{{ info.creatorCompany ? "-" + info.creatorCompany : '' }}</div> + </div> + <div class="item"> + <div class="la">澶勭悊浜�</div> + <div class="val">{{ info.creatorPhone || info.creatorMobile }}</div> + </div> + <div class="item"> + <div class="la">澶囨敞</div> + <div class="val">{{ info.createDate }}</div> + </div> + </div> + </div> + <div class="title">鐗╂枡淇℃伅</div> + <el-table :data="list" stripe> + <el-table-column align="center" type="index" width="55" /> + <el-table-column prop="creatorName" label="鐗╂枡鍚嶇О" show-overflow-tooltip min-width="80px"></el-table-column> + <el-table-column prop="categoryName" label="鐗╂枡缂栫爜" show-overflow-tooltip min-width="100px"></el-table-column> + <el-table-column prop="createDate" label="鏉″舰鐮�" show-overflow-tooltip min-width="100px"></el-table-column> + <el-table-column prop="dealUserName" label="鍝佺墝" show-overflow-tooltip min-width="80px"></el-table-column> + <el-table-column prop="dealUserName" label="鍗曚綅" show-overflow-tooltip min-width="80px"></el-table-column> + <el-table-column prop="dealUserName" label="鍑哄簱鏁伴噺" show-overflow-tooltip min-width="80px"></el-table-column> + </el-table> + </div> + </GlobalWindow> +</template> + +<script> +import GlobalWindow from '@/components/common/GlobalWindow' +import BaseOpera from '@/components/base/BaseOpera' +import { detailById, dispatchOrder, dealOrder } from '@/api/workorder/ywWorkorder' +import { getUserList } from '@/api/system/user' +import { Message, Loading } from 'element-ui' +import dayjs from 'dayjs' +export default { + components: { + GlobalWindow + }, + extends: BaseOpera, + data() { + return { + id: '', + visible: false, + info: {}, + list: [] + + + } + }, + created() { + // this.getDetail() + }, + methods: { + getDetail() { + const { id } = this + detailById(id).then(res => { + this.info = res + }) + }, + close() { + this.visible = false + this.$emit('close') + } + } +} +</script> + +<style lang="scss" scoped> +@import '@/assets/style/variables.scss'; + +.main { + padding-top: 20px; + + .title { + font-weight: 500; + font-size: 18px; + color: $primary-color; + margin-bottom: 10px; + display: flex; + align-items: center; + + .status { + padding: 0 12px; + height: 24px; + line-height: 24px; + border-radius: 2px; + border: 1px solid #00BA92; + color: #00BA92; + font-weight: 400; + font-size: 12px; + margin-left: 10px; + } + + .primaryColor { + border: 1px solid rgba(63, 126, 239, .2); + background-color: rgba(63, 126, 239, .2); + } + + .green { + background-color: rgba(83, 183, 148, .2); + border: 1px solid rgba(83, 183, 148, .2); + } + + .gray { + color: #333333; + background-color: rgba(128, 128, 128, .2); + border: 1px solid rgba(128, 128, 128, .2); + } + } + + .list { + display: flex; + flex-wrap: wrap; + /* background: #F7F7F7; */ + border-radius: 2px; + padding: 15px 20px; + margin-bottom: 16px; + + .item { + width: 33.3%; + margin-bottom: 14px; + + .la { + color: #7f7f7f; + margin-bottom: 6px; + } + } + + .item2 { + width: 100%; + display: flex; + align-items: center; + + .la { + margin-bottom: 0; + width: 72px; + } + } + + .max { + width: 100%; + } + } + +} +</style> diff --git a/admin/src/views/stock/components/InEdit.vue b/admin/src/views/stock/components/InEdit.vue new file mode 100644 index 0000000..3bc1a30 --- /dev/null +++ b/admin/src/views/stock/components/InEdit.vue @@ -0,0 +1,138 @@ +<template> + <GlobalWindow title="鏂板缓鍑哄簱鍗�" :visible.sync="isShowModal" :confirm-working="isLoading" width="900px" @close="close" + @confirm="confirm"> + <el-form :model="param" ref="form" :rules="rules"> + <div class="df_ac"> + <el-form-item class="w3" label="鍑哄簱浠撳簱" prop="parentId"> + <el-select :disabled="param.id" v-model="param.parentId" placeholder="涓嶅~涓哄垯涓�绾у垎绫�"> + <el-option v-for="op in dataList" :key="op.id" :label="op.name" :value="op.id"></el-option> + </el-select> + </el-form-item> + <el-form-item class="w3" label="鍑哄簱鏃ユ湡"> + <el-date-picker type="date" v-model="param.getDate" format="yyyy-MM-dd" value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨鍑哄簱鏃ユ湡"></el-date-picker> + </el-form-item> + <el-form-item class="w3" label="鍑哄簱绫诲瀷" prop="parentId"> + <el-select :disabled="param.id" v-model="param.parentId" placeholder="涓嶅~涓哄垯涓�绾у垎绫�"> + <el-option v-for="op in dataList" :key="op.id" :label="op.name" :value="op.id"></el-option> + </el-select> + </el-form-item> + <el-form-item class="w3" label="澶勭悊浜�" prop="name"> + <el-input v-model="param.name" v-trim /> + </el-form-item> + <el-form-item class="w6" label="澶囨敞" prop="name"> + <el-input v-model="param.name" placeholder="璇疯緭鍏�" v-trim /> + </el-form-item> + </div> + </el-form> + <!-- --> + <el-tabs v-model="activeName"> + <el-tab-pane label="鐗╂枡淇℃伅" name="first"></el-tab-pane> + </el-tabs> + <el-button type="primary" @click="handleOpenMaterial">閫夋嫨鐗╂枡</el-button> + <el-table :data="list" stripe> + <el-table-column align="center" label="搴忓彿" type="index" width="50" /> + <el-table-column prop="creatorName" label="鐗╂枡鍚嶇О" show-overflow-tooltip min-width="80px"></el-table-column> + <el-table-column prop="categoryName" label="鐗╂枡缂栫爜" show-overflow-tooltip min-width="90px"></el-table-column> + <el-table-column prop="createDate" label="鏉″舰鐮�" show-overflow-tooltip min-width="70px"></el-table-column> + <el-table-column prop="dealUserName" label="鍝佺墝" show-overflow-tooltip min-width="70px"></el-table-column> + <el-table-column prop="dealUserName" label="鍗曚綅" show-overflow-tooltip min-width="70px"></el-table-column> + <el-table-column prop="dealUserName" label="鍑哄簱鏁伴噺" min-width="90px"> + <template v-slot="{row}"> + <el-input oninput="value=value.replace(/^(0+)|[^\d]+/g, '').slice(0, 11)" v-model="row.aa" class="w100"></el-input> + </template> + </el-table-column> + <el-table-column prop="dealUserName" label="搴撳瓨鏁伴噺" show-overflow-tooltip min-width="80px"></el-table-column> + <el-table-column prop="dealUserName" label="鎿嶄綔" min-width="60px"> + <template v-slot="scope"> + <span @click="handleDel(scope)" class="red pointer">鍒犻櫎</span> + </template> + </el-table-column> + </el-table> + <!-- --> + <AssetSel v-if="isShowSel" ref="AssetSelRef" @change="changeSel" @close="isShowSel = false" /> + </GlobalWindow> +</template> + +<script> +import GlobalWindow from '@/components/common/GlobalWindow' +import AssetSel from './AssetSel' +import { create, fetchCateList, getInfoById } from '@/api/business/category.js' +export default { + name: 'OperaCategoryWindow', + components: { GlobalWindow, AssetSel }, + data() { + return { + // 琛ㄥ崟鏁版嵁 + param: {}, + activeName: 'first', + isShowModal: false, + isShowSel: false, + isLoading: false, + // 楠岃瘉瑙勫垯 + rules: { + name: [{ required: true, message: '璇疯緭鍏ヤ簩绾у垎绫诲悕绉�', trigger: 'blur' }], + }, + list: [{}], + + dataList: [], + } + }, + created() { + + }, + methods: { + confirm() { + + }, + getList() { + fetchCateList({ type: 5 }).then(res => { + this.dataList = res || [] + + }) + }, + changeSel() { + + }, + handleDel(val) { + const index = val.$index + this.list.splice(index, 1) + + }, + handleOpenMaterial() { + this.isShowSel = true + this.$nextTick(() => { + this.$refs.AssetSelRef.isShowModal = true + }) + }, + close() { + this.isShowModal = false + this.$emit('close') + }, + getDetail(id) { + getInfoById(id).then(res => { + this.param = res + }) + }, + } +} +</script> +<style lang="scss" scoped> +.df_ac { + display: flex; + align-items: center; + flex-wrap: wrap; + + .w3 { + width: 33.3%; + padding: 0 10px; + box-sizing: border-box; + } + + .w6 { + width: 66.6%; + padding: 0 10px; + box-sizing: border-box; + } +} +</style> \ No newline at end of file diff --git a/admin/src/views/stock/components/OutDetail.vue b/admin/src/views/stock/components/OutDetail.vue new file mode 100644 index 0000000..ad73ba4 --- /dev/null +++ b/admin/src/views/stock/components/OutDetail.vue @@ -0,0 +1,164 @@ +<template> + <GlobalWindow width="960px" title="鍑哄簱鍗曡鎯�" :visible.sync="visible" :confirm-working="isWorking" @close="close" + @confirm="confirm"> + <div class="main"> + <div class="title"> + <span>宸ュ崟璇︽儏</span> + </div> + <div class="main_content"> + <div class="list"> + <div class="item"> + <div class="la">鍑哄簱浠撳簱</div> + <div class="val">{{ info.projectName }}</div> + </div> + <div class="item"> + <div class="la">鍑哄簱鏃ユ湡</div> + <div class="val">{{ info.categoryName }}</div> + </div> + <div class="item"> + <div class="la">鍑哄簱绫诲瀷</div> + <div class="val">{{ info.creatorName }}{{ info.creatorCompany ? "-" + info.creatorCompany : '' }}</div> + </div> + <div class="item"> + <div class="la">澶勭悊浜�</div> + <div class="val">{{ info.creatorPhone || info.creatorMobile }}</div> + </div> + <div class="item"> + <div class="la">澶囨敞</div> + <div class="val">{{ info.createDate }}</div> + </div> + </div> + </div> + <div class="title">鐗╂枡淇℃伅</div> + <el-table :data="list" stripe> + <el-table-column align="center" type="index" width="55" /> + <el-table-column prop="creatorName" label="鐗╂枡鍚嶇О" show-overflow-tooltip min-width="80px"></el-table-column> + <el-table-column prop="categoryName" label="鐗╂枡缂栫爜" show-overflow-tooltip min-width="100px"></el-table-column> + <el-table-column prop="createDate" label="鏉″舰鐮�" show-overflow-tooltip min-width="100px"></el-table-column> + <el-table-column prop="dealUserName" label="鍝佺墝" show-overflow-tooltip min-width="80px"></el-table-column> + <el-table-column prop="dealUserName" label="鍗曚綅" show-overflow-tooltip min-width="80px"></el-table-column> + <el-table-column prop="dealUserName" label="鍑哄簱鏁伴噺" show-overflow-tooltip min-width="80px"></el-table-column> + </el-table> + </div> + </GlobalWindow> +</template> + +<script> +import GlobalWindow from '@/components/common/GlobalWindow' +import BaseOpera from '@/components/base/BaseOpera' +import { detailById, dispatchOrder, dealOrder } from '@/api/workorder/ywWorkorder' +import { getUserList } from '@/api/system/user' +import { Message, Loading } from 'element-ui' +import dayjs from 'dayjs' +export default { + components: { + GlobalWindow + }, + extends: BaseOpera, + data() { + return { + id: '', + visible: false, + info: {}, + list: [] + + + } + }, + created() { + // this.getDetail() + }, + methods: { + getDetail() { + const { id } = this + detailById(id).then(res => { + this.info = res + }) + }, + close() { + this.visible = false + this.$emit('close') + } + } +} +</script> + +<style lang="scss" scoped> +@import '@/assets/style/variables.scss'; + +.main { + padding-top: 20px; + + .title { + font-weight: 500; + font-size: 18px; + color: $primary-color; + margin-bottom: 10px; + display: flex; + align-items: center; + + .status { + padding: 0 12px; + height: 24px; + line-height: 24px; + border-radius: 2px; + border: 1px solid #00BA92; + color: #00BA92; + font-weight: 400; + font-size: 12px; + margin-left: 10px; + } + + .primaryColor { + border: 1px solid rgba(63, 126, 239, .2); + background-color: rgba(63, 126, 239, .2); + } + + .green { + background-color: rgba(83, 183, 148, .2); + border: 1px solid rgba(83, 183, 148, .2); + } + + .gray { + color: #333333; + background-color: rgba(128, 128, 128, .2); + border: 1px solid rgba(128, 128, 128, .2); + } + } + + .list { + display: flex; + flex-wrap: wrap; + /* background: #F7F7F7; */ + border-radius: 2px; + padding: 15px 20px; + margin-bottom: 16px; + + .item { + width: 33.3%; + margin-bottom: 14px; + + .la { + color: #7f7f7f; + margin-bottom: 6px; + } + } + + .item2 { + width: 100%; + display: flex; + align-items: center; + + .la { + margin-bottom: 0; + width: 72px; + } + } + + .max { + width: 100%; + } + } + +} +</style> diff --git a/admin/src/views/stock/components/OutEdit.vue b/admin/src/views/stock/components/OutEdit.vue new file mode 100644 index 0000000..3bc1a30 --- /dev/null +++ b/admin/src/views/stock/components/OutEdit.vue @@ -0,0 +1,138 @@ +<template> + <GlobalWindow title="鏂板缓鍑哄簱鍗�" :visible.sync="isShowModal" :confirm-working="isLoading" width="900px" @close="close" + @confirm="confirm"> + <el-form :model="param" ref="form" :rules="rules"> + <div class="df_ac"> + <el-form-item class="w3" label="鍑哄簱浠撳簱" prop="parentId"> + <el-select :disabled="param.id" v-model="param.parentId" placeholder="涓嶅~涓哄垯涓�绾у垎绫�"> + <el-option v-for="op in dataList" :key="op.id" :label="op.name" :value="op.id"></el-option> + </el-select> + </el-form-item> + <el-form-item class="w3" label="鍑哄簱鏃ユ湡"> + <el-date-picker type="date" v-model="param.getDate" format="yyyy-MM-dd" value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨鍑哄簱鏃ユ湡"></el-date-picker> + </el-form-item> + <el-form-item class="w3" label="鍑哄簱绫诲瀷" prop="parentId"> + <el-select :disabled="param.id" v-model="param.parentId" placeholder="涓嶅~涓哄垯涓�绾у垎绫�"> + <el-option v-for="op in dataList" :key="op.id" :label="op.name" :value="op.id"></el-option> + </el-select> + </el-form-item> + <el-form-item class="w3" label="澶勭悊浜�" prop="name"> + <el-input v-model="param.name" v-trim /> + </el-form-item> + <el-form-item class="w6" label="澶囨敞" prop="name"> + <el-input v-model="param.name" placeholder="璇疯緭鍏�" v-trim /> + </el-form-item> + </div> + </el-form> + <!-- --> + <el-tabs v-model="activeName"> + <el-tab-pane label="鐗╂枡淇℃伅" name="first"></el-tab-pane> + </el-tabs> + <el-button type="primary" @click="handleOpenMaterial">閫夋嫨鐗╂枡</el-button> + <el-table :data="list" stripe> + <el-table-column align="center" label="搴忓彿" type="index" width="50" /> + <el-table-column prop="creatorName" label="鐗╂枡鍚嶇О" show-overflow-tooltip min-width="80px"></el-table-column> + <el-table-column prop="categoryName" label="鐗╂枡缂栫爜" show-overflow-tooltip min-width="90px"></el-table-column> + <el-table-column prop="createDate" label="鏉″舰鐮�" show-overflow-tooltip min-width="70px"></el-table-column> + <el-table-column prop="dealUserName" label="鍝佺墝" show-overflow-tooltip min-width="70px"></el-table-column> + <el-table-column prop="dealUserName" label="鍗曚綅" show-overflow-tooltip min-width="70px"></el-table-column> + <el-table-column prop="dealUserName" label="鍑哄簱鏁伴噺" min-width="90px"> + <template v-slot="{row}"> + <el-input oninput="value=value.replace(/^(0+)|[^\d]+/g, '').slice(0, 11)" v-model="row.aa" class="w100"></el-input> + </template> + </el-table-column> + <el-table-column prop="dealUserName" label="搴撳瓨鏁伴噺" show-overflow-tooltip min-width="80px"></el-table-column> + <el-table-column prop="dealUserName" label="鎿嶄綔" min-width="60px"> + <template v-slot="scope"> + <span @click="handleDel(scope)" class="red pointer">鍒犻櫎</span> + </template> + </el-table-column> + </el-table> + <!-- --> + <AssetSel v-if="isShowSel" ref="AssetSelRef" @change="changeSel" @close="isShowSel = false" /> + </GlobalWindow> +</template> + +<script> +import GlobalWindow from '@/components/common/GlobalWindow' +import AssetSel from './AssetSel' +import { create, fetchCateList, getInfoById } from '@/api/business/category.js' +export default { + name: 'OperaCategoryWindow', + components: { GlobalWindow, AssetSel }, + data() { + return { + // 琛ㄥ崟鏁版嵁 + param: {}, + activeName: 'first', + isShowModal: false, + isShowSel: false, + isLoading: false, + // 楠岃瘉瑙勫垯 + rules: { + name: [{ required: true, message: '璇疯緭鍏ヤ簩绾у垎绫诲悕绉�', trigger: 'blur' }], + }, + list: [{}], + + dataList: [], + } + }, + created() { + + }, + methods: { + confirm() { + + }, + getList() { + fetchCateList({ type: 5 }).then(res => { + this.dataList = res || [] + + }) + }, + changeSel() { + + }, + handleDel(val) { + const index = val.$index + this.list.splice(index, 1) + + }, + handleOpenMaterial() { + this.isShowSel = true + this.$nextTick(() => { + this.$refs.AssetSelRef.isShowModal = true + }) + }, + close() { + this.isShowModal = false + this.$emit('close') + }, + getDetail(id) { + getInfoById(id).then(res => { + this.param = res + }) + }, + } +} +</script> +<style lang="scss" scoped> +.df_ac { + display: flex; + align-items: center; + flex-wrap: wrap; + + .w3 { + width: 33.3%; + padding: 0 10px; + box-sizing: border-box; + } + + .w6 { + width: 66.6%; + padding: 0 10px; + box-sizing: border-box; + } +} +</style> \ No newline at end of file diff --git a/admin/src/views/stock/in.vue b/admin/src/views/stock/in.vue index e71d95d..ee899e6 100644 --- a/admin/src/views/stock/in.vue +++ b/admin/src/views/stock/in.vue @@ -2,7 +2,8 @@ <div class="main_app"> <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> <div class="mt20"> - <el-button type="primary" @click="handleEx()" v-permissions="['business:ywpatrolline:create']">瀵煎嚭</el-button> + <el-button type="primary" @click="handleEdit()" v-permissions="['business:ywpatrolline:create']">鏂板缓鍑哄簱鍗�</el-button> + <el-button @click="handleEx()" v-permissions="['business:ywpatrolline:create']">瀵煎嚭</el-button> </div> <el-table v-loading="loading" :data="list" stripe> <el-table-column prop="platformName" label="鍑哄簱鍗曞彿" min-width="120" show-overflow-tooltip /> @@ -13,20 +14,25 @@ <el-table-column prop="param2" label="鎿嶄綔浜�" min-width="90" show-overflow-tooltip /> <el-table-column prop="workTime" label="鎿嶄綔鏃堕棿" min-width="140" show-overflow-tooltip /> <el-table-column prop="workTime" label="鎿嶄綔" min-width="80" show-overflow-tooltip> - <template v-slot="{row}"> - <span class="primaryColor pointer">鏌ョ湅璇︽儏</span> + <template v-slot="{ row }"> + <span @click="handleDetail(row)" class="primaryColor pointer">鏌ョ湅璇︽儏</span> </template> </el-table-column> </el-table> <div class="mt20"> <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> </div> + <!-- --> + <InEdit v-if="isShowEdit" @close="isShowEdit = false" @success="getList" ref="InEditRef" /> + <InDetail v-if="isShowDetail" ref="InDetailRef" /> </div> </template> <script> import Pagination from '@/components/common/Pagination' import QueryForm from '@/components/common/QueryForm' +import InEdit from './components/InEdit' +import InDetail from './components/InDetail' import dayjs from 'dayjs' import duration from 'dayjs/plugin/duration' dayjs.extend(duration) @@ -34,22 +40,26 @@ export default { components: { Pagination, - QueryForm + QueryForm, + InEdit, + InDetail }, data() { return { loading: false, + isShowEdit: false, + isShowDetail: false, pagination: { pageSize: 10, page: 1, total: 0 }, filters: {}, - list: [], + list: [{}], total: 0, queryFormConfig: { formItems: [ - { + { filed: 'carCodeFront', type: 'input', label: '鍑哄簱鍗曞彿', @@ -82,6 +92,18 @@ } }) }, + handleEdit() { + this.isShowEdit = true + this.$nextTick(() => { + this.$refs.InEditRef.isShowModal = true + }) + }, + handleDetail() { + this.isShowDetail = true + this.$nextTick(() => { + this.$refs.InDetailRef.visible = true + }) + }, handleEx() { }, getGroupList() { getPlatformGroupList({ queryData: 0, queryType: 0 }).then(res => { @@ -97,6 +119,7 @@ getList(page) { const { pagination, filters } = this this.loading = true + if(page){pagination.page = page} platformLogPage({ model: { ...filters, @@ -106,7 +129,7 @@ }, sorts: [{ direction: 'DESC', property: 'param1' }], capacity: pagination.pageSize, - page: page || pagination.page, + page: page, }).then(res => { this.loading = false this.list = res.records || [] @@ -128,11 +151,10 @@ }, handleSizeChange(capacity) { this.pagination.pageSize = capacity + this.getList() } } } </script> -<style> - -</style> +<style></style> diff --git a/admin/src/views/stock/out.vue b/admin/src/views/stock/out.vue index e71d95d..07aca66 100644 --- a/admin/src/views/stock/out.vue +++ b/admin/src/views/stock/out.vue @@ -2,7 +2,8 @@ <div class="main_app"> <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> <div class="mt20"> - <el-button type="primary" @click="handleEx()" v-permissions="['business:ywpatrolline:create']">瀵煎嚭</el-button> + <el-button type="primary" @click="handleEdit()" v-permissions="['business:ywpatrolline:create']">鏂板缓鍑哄簱鍗�</el-button> + <el-button @click="handleEx()" v-permissions="['business:ywpatrolline:create']">瀵煎嚭</el-button> </div> <el-table v-loading="loading" :data="list" stripe> <el-table-column prop="platformName" label="鍑哄簱鍗曞彿" min-width="120" show-overflow-tooltip /> @@ -13,20 +14,25 @@ <el-table-column prop="param2" label="鎿嶄綔浜�" min-width="90" show-overflow-tooltip /> <el-table-column prop="workTime" label="鎿嶄綔鏃堕棿" min-width="140" show-overflow-tooltip /> <el-table-column prop="workTime" label="鎿嶄綔" min-width="80" show-overflow-tooltip> - <template v-slot="{row}"> - <span class="primaryColor pointer">鏌ョ湅璇︽儏</span> + <template v-slot="{ row }"> + <span @click="handleDetail(row)" class="primaryColor pointer">鏌ョ湅璇︽儏</span> </template> </el-table-column> </el-table> <div class="mt20"> <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> </div> + <!-- --> + <OutEdit v-if="isShowEdit" @close="isShowEdit = false" @success="getList" ref="OutEditRef" /> + <OutDetail v-if="isShowDetail" ref="OutDetailRef" /> </div> </template> <script> import Pagination from '@/components/common/Pagination' import QueryForm from '@/components/common/QueryForm' +import OutEdit from './components/OutEdit' +import OutDetail from './components/OutDetail' import dayjs from 'dayjs' import duration from 'dayjs/plugin/duration' dayjs.extend(duration) @@ -34,22 +40,26 @@ export default { components: { Pagination, - QueryForm + QueryForm, + OutEdit, + OutDetail }, data() { return { loading: false, + isShowEdit: false, + isShowDetail: false, pagination: { pageSize: 10, page: 1, total: 0 }, filters: {}, - list: [], + list: [{}], total: 0, queryFormConfig: { formItems: [ - { + { filed: 'carCodeFront', type: 'input', label: '鍑哄簱鍗曞彿', @@ -82,6 +92,18 @@ } }) }, + handleEdit() { + this.isShowEdit = true + this.$nextTick(() => { + this.$refs.OutEditRef.isShowModal = true + }) + }, + handleDetail() { + this.isShowDetail = true + this.$nextTick(() => { + this.$refs.OutDetailRef.visible = true + }) + }, handleEx() { }, getGroupList() { getPlatformGroupList({ queryData: 0, queryType: 0 }).then(res => { @@ -97,6 +119,7 @@ getList(page) { const { pagination, filters } = this this.loading = true + if(page){pagination.page = page} platformLogPage({ model: { ...filters, @@ -106,7 +129,7 @@ }, sorts: [{ direction: 'DESC', property: 'param1' }], capacity: pagination.pageSize, - page: page || pagination.page, + page: page, }).then(res => { this.loading = false this.list = res.records || [] @@ -128,11 +151,10 @@ }, handleSizeChange(capacity) { this.pagination.pageSize = capacity + this.getList() } } } </script> -<style> - -</style> +<style></style> diff --git a/admin/src/views/stock/query.vue b/admin/src/views/stock/query.vue index 7c318d2..9432354 100644 --- a/admin/src/views/stock/query.vue +++ b/admin/src/views/stock/query.vue @@ -124,6 +124,7 @@ }, handleSizeChange(capacity) { this.pagination.pageSize = capacity + this.getList() } } } diff --git a/admin/src/views/stock/record.vue b/admin/src/views/stock/record.vue index 7f1764b..f7f37f0 100644 --- a/admin/src/views/stock/record.vue +++ b/admin/src/views/stock/record.vue @@ -142,6 +142,7 @@ }, handleSizeChange(capacity) { this.pagination.pageSize = capacity + this.getList() } } } diff --git a/admin/src/views/system/publicMsg.vue b/admin/src/views/system/publicMsg.vue index 085dbd0..136d910 100644 --- a/admin/src/views/system/publicMsg.vue +++ b/admin/src/views/system/publicMsg.vue @@ -145,6 +145,7 @@ }, handleSizeChange(capacity) { this.pagination.pageSize = capacity + this.getList() } } } diff --git a/admin/src/views/system/smsMessage.vue b/admin/src/views/system/smsMessage.vue index f3f551f..0dbf752 100644 --- a/admin/src/views/system/smsMessage.vue +++ b/admin/src/views/system/smsMessage.vue @@ -3,8 +3,7 @@ <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear"> </QueryForm> <div class="pt16 mb10"> - <el-button type="primary" @click="batchStatus(0)" - v-permissions="['business:platformjob:update']">鎵归噺鍚敤</el-button> + <el-button type="primary" @click="batchStatus(0)" v-permissions="['business:platformjob:update']">鎵归噺鍚敤</el-button> <el-button @click="batchStatus(1)" v-permissions="['business:platformjob:update']">鎵归噺绂佺敤</el-button> </div> <el-table @selection-change="handleSelectionChange" class="mb20" v-loading="loading" :data="list" stripe> @@ -15,7 +14,8 @@ <el-table-column prop="content" label="娑堟伅妯℃澘" min-width="300" show-overflow-tooltip /> <el-table-column label="鐘舵��" width="120" align="center" fixed="right"> <template v-slot="scope"> - <el-switch v-permissions="['business:platformjob:update']" v-model="scope.row.status" @change="changeStatus(scope.row)" :active-value="0" :inactive-value="1"> + <el-switch v-permissions="['business:platformjob:update']" v-model="scope.row.status" + @change="changeStatus(scope.row)" :active-value="0" :inactive-value="1"> </el-switch> </template> </el-table-column> @@ -145,6 +145,7 @@ }, handleSizeChange(capacity) { this.pagination.pageSize = capacity + this.getList() } } } -- Gitblit v1.9.3