From db96301a4715b1c4f1180095441963ed6f430797 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期五, 17 一月 2025 11:02:41 +0800
Subject: [PATCH] 开发功能
---
admin/src/api/ywContractBill.js | 8
admin/src/views/stock/check.vue | 48 +++
admin/src/views/finance/collectionSettings.vue | 72 +++++
admin/src/views/stock/components/newInventory.vue | 70 +++-
admin/package-lock.json | 168 ++++++------
admin/package.json | 2
admin/src/api/ywStocktaking.js | 23 +
admin/src/views/finance/components/call.vue | 73 +++--
admin/src/views/workorder/components/detail.vue | 75 +++--
admin/src/views/stock/components/inventoryDetails.vue | 112 +++++--
admin/src/views/finance/components/templateKeywords.vue | 50 ++-
admin/.env.test | 4
admin/src/views/finance/overdueBills.vue | 2
admin/src/views/workorder/workorderList.vue | 13 +
admin/src/views/finance/components/bullDetail.vue | 43 +-
admin/src/api/ywWarehouse.js | 5
16 files changed, 510 insertions(+), 258 deletions(-)
diff --git a/admin/.env.test b/admin/.env.test
index 0e38ccc..6791128 100644
--- a/admin/.env.test
+++ b/admin/.env.test
@@ -4,10 +4,10 @@
# VUE_APP_API_URL = 'http://192.168.5.13/gateway_interface'
# 浠诲悍
-# VUE_APP_API_URL = 'http://192.168.0.143:10010'
+VUE_APP_API_URL = 'http://192.168.0.143:10010'
# 钀嶅
# VUE_APP_API_URL = 'http://192.168.0.108:10010/'
# 娴嬭瘯鏈嶅姟
-VUE_APP_API_URL = 'https://dmtest.ahapp.net/gateway_interface'
+# VUE_APP_API_URL = 'https://dmtest.ahapp.net/gateway_interface'
diff --git a/admin/package-lock.json b/admin/package-lock.json
index 6d328d1..51ea93f 100644
--- a/admin/package-lock.json
+++ b/admin/package-lock.json
@@ -6,7 +6,7 @@
"dependencies": {
"@amap/amap-jsapi-loader": {
"version": "1.0.1",
- "resolved": "https://registry.npmmirror.com/@amap/amap-jsapi-loader/-/amap-jsapi-loader-1.0.1.tgz",
+ "resolved": "https://registry.npmjs.org/@amap/amap-jsapi-loader/-/amap-jsapi-loader-1.0.1.tgz",
"integrity": "sha512-nPyLKt7Ow/ThHLkSvn2etQlUzqxmTVgK7bIgwdBRTg2HK5668oN7xVxkaiRe3YZEzGzfV2XgH5Jmu2T73ljejw=="
},
"@babel/code-frame": {
@@ -2915,6 +2915,63 @@
"integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
"dev": true
},
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true,
+ "optional": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "optional": true
+ },
+ "loader-utils": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz",
+ "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^2.1.2"
+ }
+ },
"ssri": {
"version": "8.0.1",
"resolved": "https://registry.npm.taobao.org/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1617826515595&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.1.tgz",
@@ -2922,6 +2979,28 @@
"dev": true,
"requires": {
"minipass": "^3.1.1"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "vue-loader-v16": {
+ "version": "npm:vue-loader@16.8.3",
+ "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz",
+ "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "chalk": "^4.1.0",
+ "hash-sum": "^2.0.0",
+ "loader-utils": "^2.0.0"
}
}
}
@@ -15669,9 +15748,9 @@
"dev": true
},
"vue-clipboard2": {
- "version": "0.3.1",
- "resolved": "https://registry.npm.taobao.org/vue-clipboard2/download/vue-clipboard2-0.3.1.tgz",
- "integrity": "sha1-blUft704SImyiw2jsSKJ7WvKSJQ=",
+ "version": "0.3.3",
+ "resolved": "https://registry.npmmirror.com/vue-clipboard2/-/vue-clipboard2-0.3.3.tgz",
+ "integrity": "sha512-aNWXIL2DKgJyY/1OOeITwAQz1fHaCIGvUFHf9h8UcoQBG5a74MkdhS/xqoYe7DNZdQmZRL+TAdIbtUs9OyVjbw==",
"requires": {
"clipboard": "^2.0.0"
}
@@ -15739,87 +15818,6 @@
"resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz",
"integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
"dev": true
- }
- }
- },
- "vue-loader-v16": {
- "version": "npm:vue-loader@16.8.3",
- "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz",
- "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
- "dev": true,
- "optional": true,
- "requires": {
- "chalk": "^4.1.0",
- "hash-sum": "^2.0.0",
- "loader-utils": "^2.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "optional": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "optional": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "optional": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "optional": true
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "optional": true
- },
- "loader-utils": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
- "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
- "dev": true,
- "optional": true,
- "requires": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^2.1.2"
- }
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "optional": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
}
}
},
diff --git a/admin/package.json b/admin/package.json
index 5405124..0efce43 100644
--- a/admin/package.json
+++ b/admin/package.json
@@ -29,7 +29,7 @@
"path": "^0.12.7",
"qrcodejs2": "0.0.2",
"vue": "^2.6.11",
- "vue-clipboard2": "^0.3.1",
+ "vue-clipboard2": "^0.3.3",
"vue-cropper": "^0.6.5",
"vue-json-viewer": "^2.2.22",
"vue-router": "^3.5.1",
diff --git a/admin/src/api/ywContractBill.js b/admin/src/api/ywContractBill.js
new file mode 100644
index 0000000..be95d5e
--- /dev/null
+++ b/admin/src/api/ywContractBill.js
@@ -0,0 +1,8 @@
+import request from '@/utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywContractBill/findPageForOverdue', data, {
+ trim: true
+ })
+}
diff --git a/admin/src/api/ywStocktaking.js b/admin/src/api/ywStocktaking.js
index eda4a31..00c5235 100644
--- a/admin/src/api/ywStocktaking.js
+++ b/admin/src/api/ywStocktaking.js
@@ -21,3 +21,26 @@
export function deleteById (id) {
return request.get(`/visitsAdmin/cloudService/business/ywStocktaking/delete/${id}`)
}
+
+// 鏍规嵁ID鏌ヨ
+export function getById (id) {
+ return request.get(`/visitsAdmin/cloudService/business/ywStocktaking/${id}`)
+}
+
+// 鍙栨秷鐩樼偣鍗�
+export function cancelById (id) {
+ return request.get(`/visitsAdmin/cloudService/business/ywStocktaking/cancelById?id=${id}`)
+}
+
+// 瀹屾垚鐩樼偣鍗�
+export function finishById (id) {
+ return request.get(`/visitsAdmin/cloudService/business/ywStocktaking/finishById?id=${id}`)
+}
+
+// 鏌ヨ
+export function ywStocktakingRecordPage (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywStocktakingRecord/page', data, {
+ trim: true
+ })
+}
+
diff --git a/admin/src/api/ywWarehouse.js b/admin/src/api/ywWarehouse.js
index aa5511c..a4b3168 100644
--- a/admin/src/api/ywWarehouse.js
+++ b/admin/src/api/ywWarehouse.js
@@ -12,6 +12,11 @@
return request.post('/visitsAdmin/cloudService/business/ywWarehouse/create', data)
}
+// 鍒楄〃
+export function list (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywWarehouse/list', data)
+}
+
// 鏍规嵁ID淇敼
export function updateById (data) {
return request.post('/visitsAdmin/cloudService/business/ywWarehouse/updateById', data)
diff --git a/admin/src/views/finance/collectionSettings.vue b/admin/src/views/finance/collectionSettings.vue
index 42b37e6..1df43de 100644
--- a/admin/src/views/finance/collectionSettings.vue
+++ b/admin/src/views/finance/collectionSettings.vue
@@ -5,15 +5,46 @@
<el-form ref="form" :model="form" label-width="120px">
<el-form-item label="鐭俊妯℃澘">
<div style="display: flex; align-items: self-start;">
- <el-input type="textarea" rows="5" v-model="form.desc"></el-input>
- <el-button type="primary" style="margin-left: 10px;">淇濆瓨</el-button>
+ <el-input type="textarea" rows="5" v-model="form.smsTemp"></el-input>
+<!-- <el-button type="primary" style="margin-left: 10px;">淇濆瓨</el-button>-->
</div>
</el-form-item>
<el-form-item label="閭妯℃澘">
<div style="display: flex; align-items: self-start;">
- <el-input type="textarea" rows="5" v-model="form.desc"></el-input>
- <el-button type="primary" style="margin-left: 10px;">淇濆瓨</el-button>
+ <el-input type="textarea" rows="5" v-model="form.emailTemp"></el-input>
+<!-- <el-button type="primary" style="margin-left: 10px;">淇濆瓨</el-button>-->
</div>
+ </el-form-item>
+ <el-form-item label="绉熻祦閫氱煡鍗曟ā鏉�">
+ <div style="display: flex; align-items: self-start;">
+ <el-tooltip style="margin-right: 10px; margin-top: 10px; flex-shrink: 0;" effect="dark" content="鍖呭惈绉熻祦璐广�佺墿涓氳垂銆佺璧佹娂閲戙�佺墿涓氭娂閲�" placement="bottom-start">
+ <i class="el-icon-question"></i>
+ </el-tooltip>
+ <el-upload
+ style="flex: 1;"
+ class="upload-demo"
+ :action="uploadImgUrl"
+ :data="uploadData"
+ :on-success="uploadAvatarSuccess"
+ :on-remove="handleRemove"
+ :file-list="form.leaseTemp">
+ <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button>
+ </el-upload>
+ </div>
+ </el-form-item>
+ <el-form-item label="鍏朵粬閫氱煡鍗曟ā鏉�">
+ <el-upload
+ class="upload-demo"
+ :action="uploadImgUrl"
+ :data="uploadData"
+ :on-success="uploadAvatarSuccess1"
+ :on-remove="handleRemove1"
+ :file-list="form.otherTemp">
+ <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button>
+ </el-upload>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" @click="submit">淇濆瓨</el-button>
</el-form-item>
</el-form>
</div>
@@ -30,8 +61,15 @@
name: 'collectionSettings',
data() {
return {
+ uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/uploadBatch',
+ uploadData: {
+ folder: 'TEMP_CONFIG'
+ },
form: {
- desc: ''
+ emailTemp: '',
+ smsTemp: '',
+ leaseTemp: [],
+ otherTemp: []
}
}
},
@@ -40,10 +78,30 @@
this.getCallTempVal()
},
methods: {
+ submit() {
+
+ },
+ handleRemove(e) {
+ this.form.leaseTemp = []
+ },
+ uploadAvatarSuccess(file) {
+ const item = file.data[0]
+ this.form.leaseTemp = [{ ...item, name: item.originname }]
+ },
+ handleRemove1(e) {
+ this.form.otherTemp = []
+ },
+ uploadAvatarSuccess1(file) {
+ const item = file.data[0]
+ this.form.otherTemp = [{ ...item, name: item.originname }]
+ },
getCallTempVal() {
getCallTemp({})
.then(res => {
- console.log(res)
+ this.form.smsTemp = res.smsTemp.title
+ this.form.emailTemp = res.emailTemp.title
+ this.form.leaseTemp = [{ url: res.leaseTemp.url, name: res.leaseTemp.title }]
+ this.form.otherTemp = [{ url: res.otherTemp.url, name: res.otherTemp.title }]
})
}
}
@@ -64,7 +122,7 @@
align-items: self-start;
justify-content: space-between;
.content_form {
- width: 60%;
+ width: 70%;
}
}
}
diff --git a/admin/src/views/finance/components/bullDetail.vue b/admin/src/views/finance/components/bullDetail.vue
index ac60691..b40909b 100644
--- a/admin/src/views/finance/components/bullDetail.vue
+++ b/admin/src/views/finance/components/bullDetail.vue
@@ -8,23 +8,26 @@
<el-tag type="success" v-if="info.status === 0">寮�鍚�</el-tag>
<el-tag type="info" v-if="info.status === 1">鍏抽棴</el-tag>
</div>
- <el-button plain type="primary" v-if="![1].includes(info.payStatus)" @click="$refs.flowingWater.open('鍒涘缓鏀舵敮娴佹按', {
- billType: returnBillType(),
- billId: info.id,
- costType: info.costType,
- receivableFee: Math.abs(info.needReceivableFee),
- costTypeName: returnText(info.costType),
- contractCode: info.contractCode,
- contractId: info.contractId,
- startDate: info.startDate,
- endDate: info.endDate,
- multifileList: [],
- date: `${info.startDate} ~ ${info.endDate}`,
- companyId: info.companyId,
- companyName: info.companyName,
- actReceivableFee: Math.abs(info.needReceivableFee),
- needReceivableFeeCopy: info.needReceivableFee
- })">鏂板缓鏀舵敮娴佹按</el-button>
+ <div style="display: flex; align-items: center;">
+ <el-button @click="$refs.call.open('鍙戦�佸偓缂撮�氱煡', info)">鍙戦�佺即璐归�氱煡</el-button>
+ <el-button plain type="primary" v-if="![1].includes(info.payStatus)" @click="$refs.flowingWater.open('鍒涘缓鏀舵敮娴佹按', {
+ billType: returnBillType(),
+ billId: info.id,
+ costType: info.costType,
+ receivableFee: Math.abs(info.needReceivableFee),
+ costTypeName: returnText(info.costType),
+ contractCode: info.contractCode,
+ contractId: info.contractId,
+ startDate: info.startDate,
+ endDate: info.endDate,
+ multifileList: [],
+ date: `${info.startDate} ~ ${info.endDate}`,
+ companyId: info.companyId,
+ companyName: info.companyName,
+ actReceivableFee: Math.abs(info.needReceivableFee),
+ needReceivableFeeCopy: info.needReceivableFee
+ })">鏂板缓鏀舵敮娴佹按</el-button>
+ </div>
</div>
<div class="line"></div>
<div class="main">
@@ -190,6 +193,8 @@
<FlowingWater ref="flowingWater" @success="getDetails" @refresh="Refresh" />
<!-- 鍚堝悓璇︽儏 -->
<ContractDetail ref="ContractDetailRef" />
+ <!-- 鍙戦�佺即璐归�氱煡 -->
+ <Call ref="call" />
</GlobalWindow>
</template>
@@ -197,13 +202,15 @@
import GlobalWindow from '@/components/common/GlobalWindow'
import BaseOpera from '@/components/base/BaseOpera'
import FlowingWater from './flowingWater'
+import Call from './call'
import ContractDetail from '../../contract/components/contractDetail'
import { getYwContractBillById } from '@/api/contract'
export default {
components: {
GlobalWindow,
FlowingWater,
- ContractDetail
+ ContractDetail,
+ Call
},
extends: BaseOpera,
data() {
diff --git a/admin/src/views/finance/components/call.vue b/admin/src/views/finance/components/call.vue
index 7bf84c1..d2504cc 100644
--- a/admin/src/views/finance/components/call.vue
+++ b/admin/src/views/finance/components/call.vue
@@ -2,33 +2,23 @@
<GlobalWindow
:title="title"
:visible.sync="visible"
- width="100%">
+ width="100%"
+ @confirm="confirm">
<el-form :model="form" label-position="top" ref="paramRef" :rules="rules">
- <el-form-item label="閫氱煡鏂瑰紡" prop="title">
- <el-checkbox-group v-model="form.title">
- <el-checkbox label="缇庨/椁愬巺绾夸笂娲诲姩" name="1"></el-checkbox>
- <el-checkbox label="鍦版帹娲诲姩" name="2"></el-checkbox>
- <el-checkbox label="绾夸笅涓婚娲诲姩" name="3"></el-checkbox>
- <el-checkbox label="鍗曠函鍝佺墝鏇濆厜" name="4"></el-checkbox>
+ <el-form-item label="閫氱煡鏂瑰紡" prop="type">
+ <el-checkbox-group v-model="form.type">
+ <el-checkbox label="鐭俊"></el-checkbox>
+ <el-checkbox label="閭欢"></el-checkbox>
</el-checkbox-group>
</el-form-item>
- <el-form-item label="閫氱煡鎺ユ敹浜�" prop="companyId">
- <div style="display: flex; flex-direction: column;">
- <div style="display: flex; align-items: center; margin-bottom: 20px;">
- <span style="font-size: 14px; color: black; margin-right: 10px;">寮犱笁</span>
- <el-select v-model="form.companyId" placeholder="璇烽�夋嫨">
- <el-option label="鍖哄煙涓�" value="0"></el-option>
- <el-option label="鍖哄煙浜�" value="1"></el-option>
- </el-select>
- </div>
- <div style="display: flex; align-items: center;">
- <span style="font-size: 14px; color: black; margin-right: 10px;">XXXX鍏徃</span>
- <el-select v-model="form.companyId" placeholder="璇烽�夋嫨">
- <el-option label="鍖哄煙涓�" value="0"></el-option>
- <el-option label="鍖哄煙浜�" value="1"></el-option>
- </el-select>
- </div>
- </div>
+ <el-form-item label="閫氱煡鎺ユ敹浜�" prop="userId">
+ <el-select v-model="form.userId" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="(item, index) in userList"
+ :key="index"
+ :label="item.realname"
+ :value="item.id" />
+ </el-select>
</el-form-item>
</el-form>
</GlobalWindow>
@@ -37,24 +27,47 @@
<script>
import GlobalWindow from '@/components/common/GlobalWindow'
import BaseOpera from '@/components/base/BaseOpera'
+ import { getUserList } from '@/api/system/user'
export default {
name: "call",
components: { GlobalWindow },
extends: BaseOpera,
data() {
return {
+ info: null,
form: {
- title: '1',
- companyId: '0'
+ type: [],
+ userId: ''
},
rules: {
- title: [{ required: true, message: '璇疯緭鍏�' }],
- companyId: [{ required: true, message: '璇烽�夋嫨' }],
- }
+ type: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }],
+ userId: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }]
+ },
+ userList: []
}
},
+ created () {
+ this.getUser()
+ },
methods: {
-
+ open (title, target) {
+ this.title = title
+ this.info = target
+ this.visible = true
+ },
+ getUser() {
+ getUserList({})
+ .then(res => {
+ this.userList = res
+ })
+ },
+ confirm() {
+ this.$refs.paramRef.validate((valid) => {
+ if (!valid) {
+ return
+ }
+ })
+ }
}
}
</script>
diff --git a/admin/src/views/finance/components/templateKeywords.vue b/admin/src/views/finance/components/templateKeywords.vue
index 1d748b1..b88022e 100644
--- a/admin/src/views/finance/components/templateKeywords.vue
+++ b/admin/src/views/finance/components/templateKeywords.vue
@@ -1,32 +1,21 @@
<template>
<GlobalWindow
:title="title"
+ :withFooter="false"
:visible.sync="visible"
width="100%">
<div class="main">
<div class="title">璐﹀崟淇℃伅</div>
<div class="list">
- <el-tag type="info" size="medium" effect="plain" style="margin-right: 10px;">${璐圭敤鍚嶇О}</el-tag>
- <el-tag type="info" size="medium" effect="plain" style="margin-right: 10px;">${璁¤垂鍛ㄦ湡}</el-tag>
- <el-tag type="info" size="medium" effect="plain" style="margin-right: 10px;">${鍗曚环}</el-tag>
- <el-tag type="info" size="medium" effect="plain" style="margin-right: 10px;">${鍗曚綅}</el-tag>
- <el-tag type="info" size="medium" effect="plain" style="margin-right: 10px;">${搴旀敹鏃ユ湡}</el-tag>
+ <el-tag type="info" size="medium" effect="plain" style="margin-right: 10px; cursor: pointer;" @click="copy(item.title)" v-for="(item, index) in billTempList" :key="index">{{item.title}}</el-tag>
</div>
<div class="title">鍚堝悓淇℃伅</div>
<div class="list">
- <el-tag type="info" size="medium" effect="plain" style="margin-right: 10px;">${璐圭敤鍚嶇О}</el-tag>
- <el-tag type="info" size="medium" effect="plain" style="margin-right: 10px;">${璁¤垂鍛ㄦ湡}</el-tag>
- <el-tag type="info" size="medium" effect="plain" style="margin-right: 10px;">${鍗曚环}</el-tag>
- <el-tag type="info" size="medium" effect="plain" style="margin-right: 10px;">${鍗曚綅}</el-tag>
- <el-tag type="info" size="medium" effect="plain" style="margin-right: 10px;">${搴旀敹鏃ユ湡}</el-tag>
+ <el-tag type="info" size="medium" effect="plain" style="margin-right: 10px; cursor: pointer;" @click="copy(item.title)" v-for="(item, index) in contractTempList" :key="index">{{item.title}}</el-tag>
</div>
<div class="title">鍏朵粬淇℃伅</div>
<div class="list">
- <el-tag type="info" size="medium" effect="plain" style="margin-right: 10px;">${璐圭敤鍚嶇О}</el-tag>
- <el-tag type="info" size="medium" effect="plain" style="margin-right: 10px;">${璁¤垂鍛ㄦ湡}</el-tag>
- <el-tag type="info" size="medium" effect="plain" style="margin-right: 10px;">${鍗曚环}</el-tag>
- <el-tag type="info" size="medium" effect="plain" style="margin-right: 10px;">${鍗曚綅}</el-tag>
- <el-tag type="info" size="medium" effect="plain" style="margin-right: 10px;">${搴旀敹鏃ユ湡}</el-tag>
+ <el-tag type="info" size="medium" effect="plain" style="margin-right: 10px; cursor: pointer;" @click="copy(item.title)" v-for="(item, index) in otherTempList" :key="index">{{item.title}}</el-tag>
</div>
</div>
</GlobalWindow>
@@ -35,17 +24,44 @@
<script>
import GlobalWindow from '@/components/common/GlobalWindow'
import BaseOpera from '@/components/base/BaseOpera'
+ import { getCallTemp } from '@/api/ywTempConfig'
export default {
name: "templateKeywords",
components: { GlobalWindow },
extends: BaseOpera,
data() {
return {
-
+ billTempList: [],
+ contractTempList: [],
+ otherTempList: []
}
},
+ created () {
+ this.getCallTempVal()
+ },
methods: {
-
+ open (title) {
+ this.title = title
+ this.visible = true
+ },
+ getCallTempVal() {
+ getCallTemp({})
+ .then(res => {
+ this.billTempList = res.billTempList
+ this.contractTempList = res.contractTempList
+ this.otherTempList = res.otherTempList
+ })
+ },
+ copy(val) {
+ this.$copyText(val).then(
+ (e) => {
+ this.$message.success('澶嶅埗鎴愬姛锛�')
+ },
+ (err) => {
+ this.$message.error('澶嶅埗鎴愬姛锛�')
+ }
+ );
+ }
}
}
</script>
diff --git a/admin/src/views/finance/overdueBills.vue b/admin/src/views/finance/overdueBills.vue
index 8d64cc1..fd8ad9a 100644
--- a/admin/src/views/finance/overdueBills.vue
+++ b/admin/src/views/finance/overdueBills.vue
@@ -97,7 +97,7 @@
import BullEditFu from './components/bullEditFu.vue'
import Detail from './components/bullDetail.vue'
import Call from './components/call.vue'
- import { fetchList } from '@/api/bill'
+ import { fetchList } from '@/api/ywContractBill'
export default {
components: {
Pagination,
diff --git a/admin/src/views/stock/check.vue b/admin/src/views/stock/check.vue
index 2048c22..49018c2 100644
--- a/admin/src/views/stock/check.vue
+++ b/admin/src/views/stock/check.vue
@@ -2,13 +2,13 @@
<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="$refs.newInventory.open('鏂板缓鐩樼偣鍗�')" v-permissions="['business:ywpatrolline:create']">娣诲姞</el-button>
</div>
<el-table v-loading="loading" :data="list" stripe>
<el-table-column prop="name" label="鐩樼偣鍗曞悕绉�" min-width="120" show-overflow-tooltip />
<el-table-column prop="warehouseName" label="鐩樼偣浠撳簱" min-width="100" show-overflow-tooltip />
<el-table-column prop="userName" label="鐩樼偣鍛�" min-width="80" show-overflow-tooltip />
- <el-table-column prop="dealDate" label="鐩樼偣鏃ユ湡" min-width="110" show-overflow-tooltip />
+ <el-table-column prop="planDate" label="鐩樼偣鏃ユ湡" min-width="110" show-overflow-tooltip />
<el-table-column prop="createName" label="鍒涘缓浜�" min-width="80" show-overflow-tooltip />
<el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="140" show-overflow-tooltip />
<el-table-column label="鐩樼偣鐘舵��" min-width="80">
@@ -21,29 +21,35 @@
</el-table-column>
<el-table-column prop="workTime" label="鎿嶄綔" min-width="140" show-overflow-tooltip>
<template v-slot="{ row }">
- <el-button type="text">鏌ョ湅璇︽儏</el-button>
- <el-button type="text">鍙栨秷</el-button>
- <el-button type="text">鍒犻櫎</el-button>
+ <el-button type="text" @click="$refs.inventoryDetails.open('鐩樼偣璇︾粏', row.id)">鏌ョ湅璇︽儏</el-button>
+ <el-button type="text" v-if="[0,1].includes(row.status)" @click="cancel(row.id)">鍙栨秷</el-button>
+ <el-button type="text" v-if="[0,3].includes(row.status)" @click="dele(row.id)">鍒犻櫎</el-button>
</template>
</el-table-column>
</el-table>
<div class="mt20">
<Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" />
</div>
+ <NewInventory ref="newInventory" @success="getList" />
+ <InventoryDetails ref="inventoryDetails" />
</div>
</template>
<script>
import Pagination from '@/components/common/Pagination'
import QueryForm from '@/components/common/QueryForm'
+import NewInventory from './components/newInventory'
+import InventoryDetails from './components/inventoryDetails'
import dayjs from 'dayjs'
import duration from 'dayjs/plugin/duration'
dayjs.extend(duration)
-import { fetchList } from '@/api/ywStocktaking'
+import { fetchList, cancelById, deleteById } from '@/api/ywStocktaking'
export default {
components: {
Pagination,
- QueryForm
+ QueryForm,
+ NewInventory,
+ InventoryDetails
},
data() {
return {
@@ -100,6 +106,34 @@
this.loading = false
})
},
+ cancel(id) {
+ this.$confirm('鏄惁纭鍙栨秷?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ cancelById(id)
+ .then(res => {
+ this.getList()
+ })
+ }).catch(() => {
+
+ });
+ },
+ dele(id) {
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ deleteById(id)
+ .then(res => {
+ this.getList()
+ })
+ }).catch(() => {
+
+ });
+ },
clear() {
this.filters = {}
this.pagination.pageSize = 10
diff --git a/admin/src/views/stock/components/inventoryDetails.vue b/admin/src/views/stock/components/inventoryDetails.vue
index b0c6d1c..790d7bf 100644
--- a/admin/src/views/stock/components/inventoryDetails.vue
+++ b/admin/src/views/stock/components/inventoryDetails.vue
@@ -10,62 +10,66 @@
<div class="list">
<div class="item">
<div class="la">鐩樼偣鍗曞悕绉�</div>
- <div class="val">搴撳瓨鐩樼偣20241212</div>
+ <div class="val">{{info.name}}</div>
</div>
<div class="item">
<div class="la">鐩樼偣鏃ユ湡</div>
- <div class="val">2024-11-17</div>
+ <div class="val">{{info.planDate}}</div>
</div>
<div class="item">
<div class="la">鐩樼偣浠撳簱</div>
- <div class="val">浠撳簱1</div>
+ <div class="val">{{info.warehouseName}}</div>
</div>
<div class="item">
<div class="la">鐩樼偣鍛�</div>
- <div class="val">寮犱笁</div>
+ <div class="val">{{info.userName}}</div>
</div>
<div class="item">
<div class="la">鐩樼偣鐘舵��</div>
- <div class="val">宸插畬鎴�</div>
+ <div class="val" v-if="info.status === 0">鏈紑濮�</div>
+ <div class="val" v-if="info.status === 1">杩涜涓�</div>
+ <div class="val" v-if="info.status === 2">宸插畬鎴�</div>
+ <div class="val" v-if="info.status === 3">宸插彇娑�</div>
</div>
</div>
<div class="title">鐩樼偣缁撴灉</div>
<div class="list">
<div class="list_search">
<div class="list_search_left">
- <el-input v-model="input" style="width: 200px; margin-right: 10px;" placeholder="璇疯緭鍏ュ唴瀹�"></el-input>
- <el-select v-model="input" style="width: 200px; margin-right: 10px;" placeholder="璇烽�夋嫨">
- <el-option
- v-for="item in options"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
+ <el-input v-model="form.code" style="width: 200px; margin-right: 10px;" placeholder="璇疯緭鍏ョ墿鏂欏悕绉�/缂栫爜"></el-input>
+ <el-select v-model="form.status" style="width: 150px; margin-right: 10px;" placeholder="鐩樼偣鐘舵��">
+ <el-option label="宸茬洏" :value="1"></el-option>
+ <el-option label="鏈洏" :value="0"></el-option>
</el-select>
- <el-button type="primary">鏌ヨ</el-button>
- <el-button>娓呯┖</el-button>
+ <el-select v-model="form.type" style="width: 150px; margin-right: 10px;" placeholder="鐩樼偣缁撴灉">
+ <el-option label="璐﹀疄鐩哥" :value="0"></el-option>
+ <el-option label="鐩樹簭" :value="1"></el-option>
+ <el-option label="鐩樼泩" :value="2"></el-option>
+ </el-select>
+ <el-button type="primary" @click="getList">鏌ヨ</el-button>
+ <el-button @click="clear">娓呯┖</el-button>
<el-button>瀵煎嚭</el-button>
</div>
<div class="list_search_right">
- <span>宸茬洏:100</span>
- <span>鏈洏:20</span>
- <span>璐﹀疄鐩哥:88</span>
- <span>鐩樼泩:2</span>
- <span>鐩樹簭:20</span>
+ <span>宸茬洏:{{info.finishAmount || 0}}</span>
+ <span>鏈洏:{{info.unFinishAmount || 0}}</span>
+ <span>璐﹀疄鐩哥:{{info.equalAmount || 0}}</span>
+ <span>鐩樼泩:{{info.profitAmount || 0}}</span>
+ <span>鐩樹簭:{{info.lossAmount || 0}}</span>
</div>
</div>
<div style="width: 100%; margin: 20px 0;">
- <el-table :data="roomList" stripe>
- <el-table-column prop="projectName" label="璧勪骇缂栫爜" show-overflow-tooltip />
- <el-table-column prop="buildingName" label="璧勪骇鍚嶇О" show-overflow-tooltip />
- <el-table-column prop="buildingName" label="鏉$爜" show-overflow-tooltip />
- <el-table-column prop="buildingName" label="鍝佺墝" show-overflow-tooltip />
- <el-table-column prop="buildingName" label="瑙勬牸鍨嬪彿" show-overflow-tooltip />
- <el-table-column prop="buildingName" label="鍗曚綅" show-overflow-tooltip />
- <el-table-column prop="buildingName" label="鎵�鍦ㄤ粨搴�" show-overflow-tooltip />
- <el-table-column prop="buildingName" label="璐﹂潰鏁伴噺" show-overflow-tooltip />
- <el-table-column prop="buildingName" label="鐩樼偣鏁伴噺" show-overflow-tooltip />
- <el-table-column prop="buildingName" label="澶囨敞" show-overflow-tooltip />
+ <el-table :data="list" stripe>
+ <el-table-column prop="materialCode" label="璧勪骇缂栫爜" show-overflow-tooltip />
+ <el-table-column prop="materialName" label="璧勪骇鍚嶇О" show-overflow-tooltip />
+ <el-table-column prop="materialQrcode" label="鏉$爜" show-overflow-tooltip />
+ <el-table-column prop="materialBrand" label="鍝佺墝" show-overflow-tooltip />
+ <el-table-column prop="materialAttr" label="瑙勬牸鍨嬪彿" show-overflow-tooltip />
+ <el-table-column prop="materialUnitName" label="鍗曚綅" show-overflow-tooltip />
+ <el-table-column prop="warehouseName" label="鎵�鍦ㄤ粨搴�" show-overflow-tooltip />
+ <el-table-column prop="stock" label="璐﹂潰鏁伴噺" show-overflow-tooltip />
+ <el-table-column prop="actStock" label="鐩樼偣鏁伴噺" show-overflow-tooltip />
+ <el-table-column prop="remark" label="澶囨敞" show-overflow-tooltip />
</el-table>
</div>
<div class="list_pagination">
@@ -87,6 +91,7 @@
<script>
import GlobalWindow from '@/components/common/GlobalWindow'
import BaseOpera from '@/components/base/BaseOpera'
+ import { ywStocktakingRecordPage, getById } from '@/api/ywStocktaking'
export default {
name: "inventoryDetails",
components: {
@@ -95,11 +100,14 @@
extends: BaseOpera,
data() {
return {
+ id: null,
info: {},
- input: '',
- options: [],
- roomList: [],
-
+ list: [],
+ form: {
+ code: '',
+ status: '',
+ type: ''
+ },
pageSize: 10,
total: 0,
page: 1
@@ -108,13 +116,45 @@
methods: {
handleSizeChange(size) {
this.pageSize = size
+ this.getList()
},
handleCurrentChange(page) {
this.page = page
+ this.getList()
},
- open (title) {
+ open (title, id) {
this.title = title
this.visible = true
+ this.id = id
+ this.getDetails()
+ this.getList()
+ },
+ getDetails() {
+ getById(this.id)
+ .then(res => {
+ this.info = res
+ })
+ },
+ clear() {
+ this.form.name = ''
+ this.form.status = ''
+ this.form.type = ''
+ this.page = 1
+ this.getList()
+ },
+ getList() {
+ ywStocktakingRecordPage({
+ capacity: this.pageSize,
+ page: this.page,
+ model: {
+ stocktakingId: this.id,
+ code: this.form.code,
+ status: this.form.status,
+ type: this.form.type
+ }
+ }).then(res => {
+ this.list = res.records
+ })
}
}
}
diff --git a/admin/src/views/stock/components/newInventory.vue b/admin/src/views/stock/components/newInventory.vue
index eb57f94..dd2be3e 100644
--- a/admin/src/views/stock/components/newInventory.vue
+++ b/admin/src/views/stock/components/newInventory.vue
@@ -6,29 +6,35 @@
:confirm-working="isWorking"
@confirm="confirm">
<el-form :model="form" ref="form" :rules="rules">
- <el-form-item label="鐩樼偣鍗曞悕绉�" prop="name">
- <el-input v-model="form.name" placeholder="璇疯緭鍏ョ洏鐐瑰崟鍚嶇О" v-trim />
- </el-form-item>
- <el-form-item label="鐩樼偣鏃ユ湡" prop="name">
+ <el-form-item label="鐩樼偣鏃ユ湡" prop="planDate">
<el-date-picker
- v-model="form.name"
+ v-model="form.planDate"
+ @change="getName"
type="date"
+ value-format="yyyy-MM-dd"
placeholder="閫夋嫨鏃ユ湡">
</el-date-picker>
</el-form-item>
- <el-form-item label="鐩樼偣浠撳簱" prop="name">
- <el-select v-model="form.name" placeholder="璇烽�夋嫨">
- <el-option label="寮犱笁" :value="1"></el-option>
- <el-option label="鏉庡洓" :value="1"></el-option>
- <el-option label="鐜嬩簩" :value="1"></el-option>
+ <el-form-item label="鐩樼偣浠撳簱" prop="warehouseId">
+ <el-select v-model="form.warehouseId" @change="getName" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="(item, index) in warehouseList"
+ :key="index"
+ :label="item.name"
+ :value="item.id" />
</el-select>
</el-form-item>
- <el-form-item label="鐩樼偣鍛�" prop="name">
- <el-select v-model="form.name" placeholder="璇烽�夋嫨">
- <el-option label="寮犱笁" :value="1"></el-option>
- <el-option label="鏉庡洓" :value="1"></el-option>
- <el-option label="鐜嬩簩" :value="1"></el-option>
+ <el-form-item label="鐩樼偣鍛�" prop="userId">
+ <el-select v-model="form.userId" @change="getName" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="(item, index) in userList"
+ :key="index"
+ :label="item.realname"
+ :value="item.id" />
</el-select>
+ </el-form-item>
+ <el-form-item label="鐩樼偣鍗曞悕绉�" prop="name">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏�" v-trim />
</el-form-item>
</el-form>
</GlobalWindow>
@@ -37,6 +43,8 @@
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
+ import { list } from '@/api/ywWarehouse'
+ import { getUserList } from '@/api/system/user'
export default {
name: 'newInventory',
extends: BaseOpera,
@@ -47,21 +55,45 @@
form: {
id: '',
name: '',
+ planDate: '',
+ warehouseId: '',
+ userId: ''
},
// 楠岃瘉瑙勫垯
rules: {
- name: [{ required: true, message: '璇疯緭鍏ラ」鐩悕绉�', trigger: 'blur' }]
+ planDate: [{ required: true, message: '璇烽�夋嫨鐩樼偣鏃ユ湡', trigger: 'blur' }],
+ warehouseId: [{ required: true, message: '璇烽�夋嫨鐩樼偣浠撳簱', trigger: 'blur' }],
+ userId: [{ required: true, message: '璇烽�夋嫨鐩樼偣鍛�', trigger: 'blur' }],
+ name: [{ required: true, message: '璇疯緭鍏ョ洏鐐瑰崟鍚嶇О', trigger: 'blur' }]
},
+ warehouseList: [],
+ userList: []
}
},
created() {
this.config({
- api: '/project/ywProject',
- 'field.id': 'id'
+ api: '/ywStocktaking'
})
+ this.getList()
},
methods: {
-
+ getList() {
+ list({})
+ .then(res => {
+ this.warehouseList = res
+ })
+ getUserList({})
+ .then(res => {
+ this.userList = res
+ })
+ },
+ getName(e) {
+ if (this.form.warehouseId && this.form.userId && this.form.planDate) {
+ let userName = this.userList.filter(item => item.id === this.form.userId)[0].realname
+ let warehouseName = this.warehouseList.filter(item => item.id === this.form.warehouseId)[0].name
+ this.form.name = warehouseName + '-' + userName + '-' + this.form.planDate
+ }
+ }
}
}
</script>
diff --git a/admin/src/views/workorder/components/detail.vue b/admin/src/views/workorder/components/detail.vue
index f2e7d5f..5b4caa0 100644
--- a/admin/src/views/workorder/components/detail.vue
+++ b/admin/src/views/workorder/components/detail.vue
@@ -3,12 +3,15 @@
@confirm="confirm">
<div class="main">
<div class="title">
- <span>宸ュ崟璇︽儏</span>
- <div>
- <div class="status primaryColor" v-if="info.dealStatus == 0 || info.dealStatus == null">寰呮寚娲�</div>
- <div class="status green" v-if="info.dealStatus == 1">宸叉寚娲�</div>
- <div class="status gray" v-if="info.dealStatus == 2">宸插鐞�</div>
+ <div class="title_left">
+ <span>宸ュ崟璇︽儏</span>
+ <div>
+ <div class="status primaryColor" v-if="info.dealStatus == 0 || info.dealStatus == null">寰呮寚娲�</div>
+ <div class="status green" v-if="info.dealStatus == 1">宸叉寚娲�</div>
+ <div class="status gray" v-if="info.dealStatus == 2">宸插鐞�</div>
+ </div>
</div>
+ <el-button>鏌ョ湅闂涓婃姤</el-button>
</div>
<div class="main_content">
<div class="list">
@@ -308,39 +311,41 @@
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);
+ justify-content: space-between;
+ .title_left {
+ display: flex;
+ align-items: center;
+ font-weight: 500;
+ font-size: 18px;
+ color: $primary-color;
+ .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);
+ }
}
}
diff --git a/admin/src/views/workorder/workorderList.vue b/admin/src/views/workorder/workorderList.vue
index f3ad3de..d22f32d 100644
--- a/admin/src/views/workorder/workorderList.vue
+++ b/admin/src/views/workorder/workorderList.vue
@@ -26,6 +26,12 @@
children: 'childCategoryList'
}"></el-cascader>
</el-form-item>
+ <el-form-item label="鏉ユ簮" prop="origin">
+ <el-select v-model="searchForm.origin" clearable filterable>
+ <el-option label="鑷缓" :value="0" />
+ <el-option label="闂杞伐鍗�" :value="1" />
+ </el-select>
+ </el-form-item>
<el-form-item label="涓婃姤鏃堕棿">
<el-date-picker v-model="searchForm.selDate" @change="changeSelDate" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" type="daterange"></el-date-picker>
@@ -58,6 +64,12 @@
</template>
</el-table-column>
<el-table-column prop="categoryName" label="宸ュ崟鍒嗙被" min-width="100px"></el-table-column>
+ <el-table-column label="鏉ユ簮" min-width="100px">
+ <template slot-scope="{row}">
+ <span v-if="row.origin == 0">鑷缓</span>
+ <span v-if="row.origin == 1">闂杞伐鍗�</span>
+ </template>
+ </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>
@@ -107,6 +119,7 @@
projectId: '',
buildingId: '',
cateId: '',
+ origin: ''
},
projectList: [],
buildList: [],
--
Gitblit v1.9.3