From d3ff748bc6b3452179f50d38ef251b4fee7ce266 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期一, 08 九月 2025 18:58:04 +0800
Subject: [PATCH] 改bug
---
frontWuhu/src/api/business/applicationInfo.js | 36 +
frontWuhu/package-lock.json | 160 +++---
frontWuhu/src/views/business/serverProvider.vue | 133 +++++
frontWuhu/src/components/business/ProjectItem.vue | 8
frontWuhu/src/api/business/labels.js | 5
frontWuhu/src/api/business/demandRecord.js | 26 +
frontWuhu/src/views/business/serviceProviderResources.vue | 323 ++++++++++++++
frontWuhu/src/api/business/serverProvider.js | 38 +
frontWuhu/src/assets/images/bg_fuwushang.png | 0
frontWuhu/src/views/business/applicationInfo.vue | 127 +++++
frontWuhu/src/components/business/OperaDetailsAWindow.vue | 83 +++
frontWuhu/src/views/business/demandRecord.vue | 99 ++++
frontWuhu/src/components/business/OperaServerProviderWindow.vue | 128 +++++
frontWuhu/.env.development | 6
frontWuhu/src/components/business/OperaDemandRecordWindow.vue | 81 +++
frontWuhu/src/components/business/OperaApplicationInfoWindow.vue | 121 +++++
frontWuhu/src/assets/images/ic_fuwushang@2x.png | 0
frontWuhu/src/assets/images/ic_clear@2x.png | 0
18 files changed, 1,284 insertions(+), 90 deletions(-)
diff --git a/frontWuhu/.env.development b/frontWuhu/.env.development
index b28c49a..5652e89 100644
--- a/frontWuhu/.env.development
+++ b/frontWuhu/.env.development
@@ -7,8 +7,8 @@
# 姹熻悕鏈湴
# VVUE_APP_API_BASE_URL='http://192.168.0.102:10031'
-# 鍒樼纾婃湰鍦�
-# VUE_APP_API_BASE_URL='http://192.168.0.18:10010'
+# 浠诲悍鏈湴
+VUE_APP_API_BASE_URL='http://192.168.1.54:10031'
#鐒︽澗鏈湴
# VUE_APP_API_BASE_URL='http://192.168.0.36:10011'
@@ -16,7 +16,7 @@
# 娴嬭瘯鏈嶅姟 http://106.14.20.42/test_hfznzz
-VUE_APP_API_BASE_URL='http://106.14.20.42/test_hfznzz'
+# VUE_APP_API_BASE_URL='http://106.14.20.42/test_hfznzz'
# VUE_APP_API_BASE_URL='http://106.14.20.42/hfznzzzd/'
#
diff --git a/frontWuhu/package-lock.json b/frontWuhu/package-lock.json
index 607f062..f43798e 100644
--- a/frontWuhu/package-lock.json
+++ b/frontWuhu/package-lock.json
@@ -1869,6 +1869,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",
@@ -1876,6 +1933,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"
}
}
}
@@ -13448,87 +13527,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/frontWuhu/src/api/business/applicationInfo.js b/frontWuhu/src/api/business/applicationInfo.js
new file mode 100644
index 0000000..27153ce
--- /dev/null
+++ b/frontWuhu/src/api/business/applicationInfo.js
@@ -0,0 +1,36 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/business/applicationInfo/page', data, {
+ trim: true
+ })
+}
+
+// 瀵煎嚭Excel
+export function exportExcel (data) {
+ return request.post('/business/applicationInfo/exportExcel', data, {
+ trim: true,
+ download: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/business/applicationInfo/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/business/applicationInfo/updateById', data)
+}
+
+// 淇敼鐘舵��
+export function updateStatus (data) {
+ return request.post('/business/applicationInfo/updateStatus', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/business/applicationInfo/delete/${id}`)
+}
diff --git a/frontWuhu/src/api/business/demandRecord.js b/frontWuhu/src/api/business/demandRecord.js
new file mode 100644
index 0000000..4312108
--- /dev/null
+++ b/frontWuhu/src/api/business/demandRecord.js
@@ -0,0 +1,26 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/business/demandRecord/page', data, {
+ trim: true
+ })
+}
+
+// 瀵煎嚭Excel
+export function exportExcel (data) {
+ return request.post('/business/demandRecord/exportExcel', data, {
+ trim: true,
+ download: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/business/demandRecord/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/business/demandRecord/updateById', data)
+}
diff --git a/frontWuhu/src/api/business/labels.js b/frontWuhu/src/api/business/labels.js
index 1530b25..8f799ed 100644
--- a/frontWuhu/src/api/business/labels.js
+++ b/frontWuhu/src/api/business/labels.js
@@ -17,6 +17,11 @@
return request.post('/business/labels/updateById', data)
}
+// 鍒楄〃鏌ヨ
+export function list (data) {
+ return request.post('/business/labels/list', data)
+}
+
// 鍒犻櫎
export function deleteById (id) {
return request.get(`/business/labels/delete/${id}`)
diff --git a/frontWuhu/src/api/business/serverProvider.js b/frontWuhu/src/api/business/serverProvider.js
new file mode 100644
index 0000000..3198732
--- /dev/null
+++ b/frontWuhu/src/api/business/serverProvider.js
@@ -0,0 +1,38 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/business/serverProvider/page', data, {
+ trim: true
+ })
+}
+
+// 瀵煎嚭Excel
+export function exportExcel (data) {
+ return request.post('/business/serverProvider/exportExcel', data, {
+ trim: true,
+ download: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/business/serverProvider/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/business/serverProvider/updateById', data)
+}
+
+// 淇敼鐘舵��
+export function updateStatus (data) {
+ return request.post('/business/serverProvider/updateStatus', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/business/serverProvider/delete/${id}`)
+}
+
+
diff --git a/frontWuhu/src/assets/images/bg_fuwushang.png b/frontWuhu/src/assets/images/bg_fuwushang.png
new file mode 100644
index 0000000..51363ec
--- /dev/null
+++ b/frontWuhu/src/assets/images/bg_fuwushang.png
Binary files differ
diff --git a/frontWuhu/src/assets/images/ic_clear@2x.png b/frontWuhu/src/assets/images/ic_clear@2x.png
new file mode 100644
index 0000000..9550b3e
--- /dev/null
+++ b/frontWuhu/src/assets/images/ic_clear@2x.png
Binary files differ
diff --git a/frontWuhu/src/assets/images/ic_fuwushang@2x.png b/frontWuhu/src/assets/images/ic_fuwushang@2x.png
new file mode 100644
index 0000000..4b05b08
--- /dev/null
+++ b/frontWuhu/src/assets/images/ic_fuwushang@2x.png
Binary files differ
diff --git a/frontWuhu/src/components/business/OperaApplicationInfoWindow.vue b/frontWuhu/src/components/business/OperaApplicationInfoWindow.vue
new file mode 100644
index 0000000..9457ead
--- /dev/null
+++ b/frontWuhu/src/components/business/OperaApplicationInfoWindow.vue
@@ -0,0 +1,121 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :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="搴旂敤LOGO" prop="logo">
+ <UploadAvatarImage :uploadData="uploadData" :file="file" @uploadSuccess="getFiles" />
+ </el-form-item>
+ <el-form-item label="鏈嶅姟鍟�" prop="serverId">
+ <el-select v-model="form.serverId" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in server"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="搴旂敤鏍囩" prop="lables">
+ <el-input v-model="form.lables" placeholder="璇疯緭鍏ュ簲鐢ㄦ爣绛撅紙澶氫釜浠ヨ嫳鏂�,鍒嗗壊锛�" v-trim/>
+ </el-form-item>
+ <el-form-item label="搴旂敤绠�浠�" prop="introduction">
+ <el-input type="textarea" :autosize="{ minRows: 12, maxRows: 6 }" v-model="form.introduction" placeholder="璇疯緭鍏ュ簲鐢ㄧ畝浠�" v-trim/>
+ </el-form-item>
+ <el-form-item label="搴旂敤璇︽儏" prop="details">
+ <el-input v-model="form.details" placeholder="璇疯緭鍏ュ簲鐢ㄨ鎯�" v-trim/>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import UploadAvatarImage from '@/components/common/UploadAvatarImage'
+import { fetchList } from '@/api/business/serverProvider'
+export default {
+ name: 'OperaApplicationInfoWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow, UploadAvatarImage },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ serverId: '',
+ name: '',
+ logo: '',
+ lables: '',
+ introduction: '',
+ details: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ name: [
+ { required: true, message: '璇疯緭鍏�', trigger: 'blur' }
+ ],
+ logo: [
+ { required: true, message: '璇蜂笂浼�', trigger: 'blur' }
+ ],
+ serverId: [
+ { required: true, message: '璇烽�夋嫨', trigger: 'blur' }
+ ],
+ },
+ server: [],
+ uploadData: {
+ folder: 'znzz/logo_file',
+ type: 'image'
+ },
+ file: {
+ imgurl: '',
+ imgurlfull: ''
+ },
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/applicationInfo',
+ 'field.id': 'id'
+ })
+ },
+ methods: {
+ open (title, target) {
+ this.title = title
+ this.getFetchList()
+ this.visible = true
+ // 鏂板缓
+ 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]
+ }
+ this.file.imgurl = target.logo
+ this.file.imgurlfull = target.fullLog
+ })
+ },
+ getFiles(e) {
+ this.file.imgurl = e.imgurl
+ this.file.imgurlfull = e.imgurlfull
+ this.form.logo = e.imgurl
+ },
+ async getFetchList() {
+ let res = await fetchList({ capacity: 9999, page: 1, model: { status: 0 } })
+ this.server = res.records
+ }
+ }
+}
+</script>
diff --git a/frontWuhu/src/components/business/OperaDemandRecordWindow.vue b/frontWuhu/src/components/business/OperaDemandRecordWindow.vue
new file mode 100644
index 0000000..06f8454
--- /dev/null
+++ b/frontWuhu/src/components/business/OperaDemandRecordWindow.vue
@@ -0,0 +1,81 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="搴旂敤鍚嶇О" prop="applicationId">
+ <el-select v-model="form.applicationId" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in application"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="闇�姹備紒涓�" prop="companyId">
+ <el-select v-model="form.companyId" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in company"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鑱旂郴浜哄鍚�" prop="linkName">
+ <el-input v-model="form.linkName" placeholder="璇疯緭鍏ヨ仈绯讳汉濮撳悕" v-trim/>
+ </el-form-item>
+ <el-form-item label="鑱旂郴浜虹數璇�" prop="linkPhone">
+ <el-input v-model="form.linkPhone" maxlength="11" placeholder="璇疯緭鍏ヨ仈绯讳汉鐢佃瘽" v-trim/>
+ </el-form-item>
+ <el-form-item label="闇�姹傝鏄�" prop="details">
+ <el-input type="textarea" :autosize="{ minRows: 12, maxRows: 6 }" v-model="form.details" placeholder="璇疯緭鍏ラ渶姹傝鏄�" v-trim/>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+export default {
+ name: 'OperaDemandRecordWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ creator: '',
+ createDate: '',
+ editor: '',
+ editDate: '',
+ isdeleted: '',
+ status: '',
+ remark: '',
+ applicationId: '',
+ companyId: '',
+ linkName: '',
+ linkPhone: '',
+ details: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ },
+ application: [],
+ company: []
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/demandRecord',
+ 'field.id': 'id'
+ })
+ }
+}
+</script>
diff --git a/frontWuhu/src/components/business/OperaDetailsAWindow.vue b/frontWuhu/src/components/business/OperaDetailsAWindow.vue
new file mode 100644
index 0000000..ba99539
--- /dev/null
+++ b/frontWuhu/src/components/business/OperaDetailsAWindow.vue
@@ -0,0 +1,83 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <div class="com">
+ <div class="com_image">
+ <img src="../../assets/images/zhuce_ic_qiye@2x.png" />
+ </div>
+ <div class="com_info">
+ <div class="com_info_title">澶у攼铻嶅悎鐗╄仈绉戞妧鏃犻敗鏈夐檺鍏徃</div>
+ <div class="com_info_list">
+ <div class="com_info_list_item">
+ <div class="com_info_list_item_label">琛屼笟绫诲埆锛�</div>
+ <div class="com_info_list_item_val">鐢靛瓙浜у搧鍙婅蒋浠�</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+export default {
+ name: 'OperaDemandRecordWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ form: {}
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/demandRecord',
+ 'field.id': 'id'
+ })
+ }
+}
+</script>
+
+<style lang="scss" scoped>
+ .com {
+ width: 100%;
+ display: flex;
+ .com_image {
+ width: 140px;
+ height: 140px;
+ flex-shrink: 0;
+ background: #F4F7FC;
+ margin-right: 30px;
+ }
+ .com_info {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ .com_info_title {
+ font-weight: 600;
+ font-size: 26px;
+ color: #222222;
+ }
+ .com_info_list {
+ display: flex;
+ flex-direction: column;
+ .com_info_list_item {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ .com_info_list_item_label {
+
+ }
+ .com_info_list_item_val {
+
+ }
+ }
+ }
+ }
+ }
+</style>
diff --git a/frontWuhu/src/components/business/OperaServerProviderWindow.vue b/frontWuhu/src/components/business/OperaServerProviderWindow.vue
new file mode 100644
index 0000000..7576be2
--- /dev/null
+++ b/frontWuhu/src/components/business/OperaServerProviderWindow.vue
@@ -0,0 +1,128 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :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="LOGO鍥剧墖" prop="logo">
+ <UploadAvatarImage :uploadData="uploadData" :file="file" @uploadSuccess="getFiles" />
+ </el-form-item>
+ <el-form-item label="鎵�灞炶涓�" prop="industryId">
+ <el-select v-model="form.industryId" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in industry"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鏈嶅姟鏄熺骇" prop="starLevel">
+ <el-select v-model="form.starLevel" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in 5"
+ :key="item"
+ :label="item + '绾�'"
+ :value="item">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鑱旂郴浜哄鍚�" prop="linkName">
+ <el-input v-model="form.linkName" placeholder="璇疯緭鍏ヨ仈绯讳汉濮撳悕" v-trim/>
+ </el-form-item>
+ <el-form-item label="鑱旂郴浜虹數璇�" prop="linkPhone">
+ <el-input v-model="form.linkPhone" maxlength="11" placeholder="璇疯緭鍏ヨ仈绯讳汉鐢佃瘽" v-trim/>
+ </el-form-item>
+ <el-form-item label="绠�浠�" prop="introduction">
+ <el-input type="textarea" :autosize="{ minRows: 12, maxRows: 6 }" v-model="form.introduction" placeholder="璇疯緭鍏ョ畝浠�" v-trim/>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import UploadAvatarImage from '@/components/common/UploadAvatarImage'
+import { list } from '@/api/business/labels'
+export default {
+ name: 'OperaServerProviderWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow, UploadAvatarImage },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ name: '',
+ logo: '',
+ industryId: '',
+ starLevel: '',
+ linkName: '',
+ linkPhone: '',
+ introduction: ''
+ },
+ file: {
+ imgurl: '',
+ imgurlfull: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ name: [
+ { required: true, message: '璇疯緭鍏�', trigger: 'blur' }
+ ],
+ logo: [
+ { required: true, message: '璇蜂笂浼�', trigger: 'blur' }
+ ]
+ },
+ uploadData: {
+ folder: 'znzz/logo_file',
+ type: 'image'
+ },
+ industry: []
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/serverProvider',
+ 'field.id': 'id'
+ })
+ },
+ methods: {
+ getFiles(e) {
+ this.file.imgurl = e.imgurl
+ this.file.imgurlfull = e.imgurlfull
+ this.form.logo = e.imgurl
+ },
+ open (title, target) {
+ this.title = title
+ this.getAll()
+ this.visible = true
+ // 鏂板缓
+ 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]
+ }
+ this.file.imgurlfull = target.fullLog
+ this.file.imgurl = target.logo
+ })
+ },
+ async getAll() {
+ this.industry = await list({ type: 1, isdeleted: 0 })
+ }
+ }
+}
+</script>
diff --git a/frontWuhu/src/components/business/ProjectItem.vue b/frontWuhu/src/components/business/ProjectItem.vue
index e6b161c..6a4f1db 100644
--- a/frontWuhu/src/components/business/ProjectItem.vue
+++ b/frontWuhu/src/components/business/ProjectItem.vue
@@ -86,13 +86,9 @@
methods: {
// 璺宠浆澶у睆
jumpDP() {
-<<<<<<< .mine
- window.open(`http://106.14.20.42/screen/#/zhfw/declaration?projectId=${this.id}`)
-||||||| .r53257
- window.open(`${process.env.VUE_APP_SCREENURL1}?projectId=${this.id}`)
-=======
+ // window.open(`http://106.14.20.42/screen/#/zhfw/declaration?projectId=${this.id}`)
+ // window.open(`${process.env.VUE_APP_SCREENURL1}?projectId=${this.id}`)
window.open(`${process.env.VUE_APP_SCREENURL1}?projectId=${this.id}&title=${this.projectName}`)
->>>>>>> .r53404
},
// 灞曠ず浼佷笟&
showCompany() {
diff --git a/frontWuhu/src/views/business/applicationInfo.vue b/frontWuhu/src/views/business/applicationInfo.vue
new file mode 100644
index 0000000..93d8bf0
--- /dev/null
+++ b/frontWuhu/src/views/business/applicationInfo.vue
@@ -0,0 +1,127 @@
+<template>
+ <TableLayout :permissions="['business:applicationinfo:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="搴旂敤鍚嶇О" prop="name">
+ <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ簲鐢ㄥ悕绉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏈嶅姟鍟嗗悕绉�" prop="serverId">
+ <el-input v-model="searchForm.serverId" placeholder="璇疯緭鍏ユ湇鍔″晢鍚嶇О" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button type="primary" :loading="isWorking.export" v-permissions="['business:applicationinfo:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:applicationinfo:create']">
+ <li><el-button type="primary" @click="$refs.operaApplicationInfoWindow.open('鏂板缓搴旂敤绠$悊')" icon="el-icon-plus" v-permissions="['business:applicationinfo:create']">鏂板缓</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ >
+ <el-table-column prop="name" label="鍚嶇О" min-width="100px"></el-table-column>
+ <el-table-column label="LOGO" min-width="120px">
+ <template slot-scope="{row}">
+ <el-image
+ v-if="row.fullLog"
+ style="width: 100px; height: 100px"
+ :src="row.fullLog"
+ :preview-src-list="[row.fullLog]">
+ </el-image>
+ </template>
+ </el-table-column>
+ <el-table-column prop="serverName" label="鏈嶅姟鍟�" min-width="100px"></el-table-column>
+ <el-table-column prop="lables" label="鏍囩" min-width="100px"></el-table-column>
+ <el-table-column prop="introduction" label="绠�浠�" min-width="100px"></el-table-column>
+ <el-table-column prop="details" label="璇︽儏" min-width="100px"></el-table-column>
+ <el-table-column label="鐘舵��" min-width="100px">
+ <template slot-scope="{row}">
+ <el-switch
+ v-model="row.status"
+ @change="changeStatus($event, row.id)"
+ active-color="#13ce66"
+ inactive-color="#ff4949"
+ :active-value="0"
+ :inactive-value="1">
+ </el-switch>
+ </template>
+ </el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:applicationinfo:update', 'business:applicationinfo:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaApplicationInfoWindow.open('缂栬緫搴旂敤绠$悊', row)" icon="el-icon-edit" v-permissions="['business:applicationinfo:update']">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:applicationinfo:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaApplicationInfoWindow ref="operaApplicationInfoWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaApplicationInfoWindow from '@/components/business/OperaApplicationInfoWindow'
+import { updateStatus } from '@/api/business/applicationInfo'
+export default {
+ name: 'ApplicationInfo',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaApplicationInfoWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ id: '',
+ creator: '',
+ createDate: '',
+ editor: '',
+ editDate: '',
+ isdeleted: '',
+ status: '',
+ remark: '',
+ serverId: '',
+ name: '',
+ logo: '',
+ lables: '',
+ introduction: '',
+ details: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '搴旂敤绠$悊',
+ api: '/business/applicationInfo',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ },
+ methods: {
+ changeStatus(status, id) {
+ updateStatus({ id, status })
+ .then(res => {
+ this.search()
+ })
+ }
+ }
+}
+</script>
diff --git a/frontWuhu/src/views/business/demandRecord.vue b/frontWuhu/src/views/business/demandRecord.vue
new file mode 100644
index 0000000..b987280
--- /dev/null
+++ b/frontWuhu/src/views/business/demandRecord.vue
@@ -0,0 +1,99 @@
+<template>
+ <TableLayout :permissions="['business:demandrecord:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="搴旂敤鍚嶇О" prop="applicationId">
+ <el-input v-model="searchForm.applicationId" placeholder="璇疯緭鍏ュ簲鐢ㄥ悕绉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="闇�姹傛彁鍑鸿��" prop="linkName">
+ <el-input v-model="searchForm.linkName" placeholder="璇疯緭鍏ヨ仈绯讳汉濮撳悕" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎻愪氦鏃堕棿" prop="createDate">
+ <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨鎻愪氦鏃堕棿" @change="search"/>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button type="primary" :loading="isWorking.export" v-permissions="['business:demandrecord:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+<!-- <ul class="toolbar" v-permissions="['business:demandrecord:create']">-->
+<!-- <li><el-button type="primary" @click="$refs.operaDemandRecordWindow.open('鏂板缓闇�姹傝褰�')" icon="el-icon-plus" v-permissions="['business:demandrecord:create']">鏂板缓</el-button></li>-->
+<!-- </ul>-->
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ >
+ <el-table-column prop="applicationId" label="搴旂敤鍚嶇О" min-width="100px"></el-table-column>
+ <el-table-column prop="companyId" label="闇�姹備紒涓�" min-width="100px"></el-table-column>
+ <el-table-column prop="linkName" label="鑱旂郴浜哄鍚�" min-width="100px"></el-table-column>
+ <el-table-column prop="linkPhone" label="鑱旂郴浜虹數璇�" min-width="100px"></el-table-column>
+ <el-table-column prop="details" label="鎻忚堪" min-width="100px"></el-table-column>
+ <el-table-column prop="createDate" label="鎻愪氦鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:demandrecord:update', 'business:demandrecord:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaDemandRecordWindow.open('缂栬緫闇�姹傝褰�', row)" icon="el-icon-edit" v-permissions="['business:demandrecord:update']">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:demandrecord:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaDemandRecordWindow ref="operaDemandRecordWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaDemandRecordWindow from '@/components/business/OperaDemandRecordWindow'
+export default {
+ name: 'DemandRecord',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaDemandRecordWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ id: '',
+ creator: '',
+ createDate: '',
+ editor: '',
+ editDate: '',
+ isdeleted: '',
+ status: '',
+ remark: '',
+ applicationId: '',
+ companyId: '',
+ linkName: '',
+ linkPhone: '',
+ details: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '闇�姹傝褰�',
+ api: '/business/demandRecord',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+}
+</script>
diff --git a/frontWuhu/src/views/business/serverProvider.vue b/frontWuhu/src/views/business/serverProvider.vue
new file mode 100644
index 0000000..6dbf31f
--- /dev/null
+++ b/frontWuhu/src/views/business/serverProvider.vue
@@ -0,0 +1,133 @@
+<template>
+ <TableLayout :permissions="['business:serverprovider:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="鏈嶅姟鍟嗗悕绉�" prop="name">
+ <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ユ湇鍔″晢鍚嶇О" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鎵�灞炶涓�" prop="industryId">
+ <el-select v-model="searchForm.industryId" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in industry"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button type="primary" :loading="isWorking.export" v-permissions="['business:serverprovider:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:serverprovider:create']">
+ <li><el-button type="primary" @click="$refs.operaServerProviderWindow.open('鏂板缓鏈嶅姟鍟嗕俊鎭�')" icon="el-icon-plus" v-permissions="['business:serverprovider:create']">鏂板缓</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ >
+ <el-table-column prop="name" label="鏈嶅姟鍟嗗悕绉�" min-width="100px"></el-table-column>
+ <el-table-column label="LOGO" min-width="120px">
+ <template slot-scope="{row}">
+ <el-image
+ v-if="row.fullLog"
+ style="width: 100px; height: 100px"
+ :src="row.fullLog"
+ :preview-src-list="[row.fullLog]">
+ </el-image>
+ </template>
+ </el-table-column>
+ <el-table-column prop="industryName" label="鎵�灞炶涓�" min-width="100px"></el-table-column>
+ <el-table-column label="鏈嶅姟鏄熺骇" min-width="100px">
+ <template slot-scope="{row}">
+ {{row.starLevel}}绾�
+ </template>
+ </el-table-column>
+ <el-table-column prop="linkName" label="鑱旂郴浜哄鍚�" min-width="100px"></el-table-column>
+ <el-table-column prop="linkPhone" label="鑱旂郴浜虹數璇�" min-width="100px"></el-table-column>
+ <el-table-column prop="introduction" label="绠�浠�" min-width="100px"></el-table-column>
+ <el-table-column label="鐘舵��" min-width="100px">
+ <template slot-scope="{row}">
+ <el-switch
+ v-model="row.status"
+ @change="changeStatus($event, row.id)"
+ active-color="#13ce66"
+ inactive-color="#ff4949"
+ :active-value="0"
+ :inactive-value="1">
+ </el-switch>
+ </template>
+ </el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:serverprovider:update', 'business:serverprovider:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaServerProviderWindow.open('缂栬緫鏈嶅姟鍟嗕俊鎭�', row)" icon="el-icon-edit" v-permissions="['business:serverprovider:update']">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:serverprovider:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaServerProviderWindow ref="operaServerProviderWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaServerProviderWindow from '@/components/business/OperaServerProviderWindow'
+import { list } from '@/api/business/labels'
+import { updateStatus } from '@/api/business/serverProvider'
+export default {
+ name: 'ServerProvider',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaServerProviderWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ name: '',
+ industryId: ''
+ },
+ industry: []
+ }
+ },
+ created () {
+ this.config({
+ module: '鏈嶅姟鍟嗕俊鎭�',
+ api: '/business/serverProvider',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ this.getAll()
+ },
+ methods: {
+ async getAll() {
+ this.industry = await list({ type: 1, isdeleted: 0 })
+ },
+ changeStatus(status, id) {
+ updateStatus({ id, status })
+ .then(res => {
+ this.search()
+ })
+ }
+ }
+}
+</script>
diff --git a/frontWuhu/src/views/business/serviceProviderResources.vue b/frontWuhu/src/views/business/serviceProviderResources.vue
new file mode 100644
index 0000000..53d9c11
--- /dev/null
+++ b/frontWuhu/src/views/business/serviceProviderResources.vue
@@ -0,0 +1,323 @@
+<template>
+ <div class="box">
+ <div class="box_head">
+ <div class="box_head_title">鏈嶅姟鍟嗚祫婧�</div>
+ <div class="box_head_info">鏈夐渶姹傘�佹壘璧勬簮銆佸鍚堜綔锛屽钩鍙拌嚧鍔涗簬涓轰緵銆侀渶鍙屾柟鎻愪緵涓�涓祦鐣呫�佷笓涓氱殑闇�姹傚鎺ヤ氦浜掑钩鍙�</div>
+ <div class="box_head_search">
+ <div class="left">
+ <div class="box_head_search_input">
+ <input type="text" v-model="name" placeholder="杈撳叆鏈嶅姟鍟嗗悕绉版悳绱�">
+ <img src="../../assets/images/ic_clear@2x.png" v-if="name" @click="clearText" />
+ </div>
+ <div class="box_head_search_btn">鏌ヨ</div>
+ </div>
+ <div class="right">
+ <img src="../../assets/images/ic_fuwushang@2x.png" alt="" />
+ <span class="right_name">鏈嶅姟鍟嗘�绘暟锛�</span>
+ <span class="right_num">220</span>
+ </div>
+ </div>
+ </div>
+ <div class="box_cate">
+ <div class="cate">
+ <div class="cate_label">琛屼笟鍒嗙被锛�</div>
+ <div class="cate_val">
+ <div :class="index === 0 ? 'cate_val_row active' : 'cate_val_row'" v-for="(item, index) in cateList" :key="index">{{item}}</div>
+ </div>
+ <div class="cate_dwon">
+ <span>灞曞紑</span>
+ <i class="el-icon-arrow-down"></i>
+ </div>
+ </div>
+ <div class="list">
+ <div class="list_item" v-for="(item, index) in 6" :key="index" @click="$refs.operaDetailsAWindow.open('鏈嶅姟鍟嗚鎯�')">
+ <div class="list_item_image">
+ <img src="../../assets/images/zhuce_ic_qiye@2x.png" alt="" />
+ </div>
+ <div class="list_item_title">瀹夊窘璞嗙背绉戞妧鏈夐檺鍏徃</div>
+ <div class="list_item_info">瀹夊窘璞嗙背绉戞妧鏈夐檺鍏徃浠ヨ蒋浠跺紑鍙戙�佷汉宸ユ櫤鑳藉簲鐢ㄥ紑鍙戜负鏍稿績...</div>
+ <div class="list_item_divide">
+ <el-rate
+ v-model="value"
+ disabled
+ text-color="#ff9900">
+ </el-rate>
+ </div>
+ </div>
+ <div class="list_zw"></div>
+ <div class="list_zw"></div>
+ </div>
+ <div class="pagination">
+ <el-pagination
+ @current-change="handleCurrentChange"
+ :current-page="currentPage"
+ :page-sizes="[10, 20, 30, 40]"
+ :page-size="10"
+ layout="total, prev, pager, next, jumper"
+ :total="50">
+ </el-pagination>
+ <div class="pagination_info">Copyright 漏 2022 - 2023 鏅鸿兘鍒堕�犺瘖鏂患鍚堟湇鍔″钩鍙�. All Rights Reserved. 鐗堟潈鎵�鏈�</div>
+ </div>
+ </div>
+ <!-- 璇︽儏 -->
+ <OperaDetailsAWindow ref="operaDetailsAWindow" @success="" />
+ </div>
+</template>
+
+<script>
+ import OperaDetailsAWindow from '@/components/business/OperaDetailsAWindow'
+ export default {
+ name: 'serviceProviderResources',
+ components: { OperaDetailsAWindow },
+ data() {
+ return {
+ name: '',
+ value: 5,
+ cateList: ['鍏ㄩ儴','鏂版潗鏂�','鍏朵粬','鏂板瀷骞虫澘鏄剧ず','鐢熺墿鍖昏嵂','椋熷搧鍔犲伐','鍐堕噾','姹借溅宸ヤ笟','杞诲伐绾虹粐','瑁呭鍒堕��','鍖栧伐','鐢靛瓙浜у搧鍙婅蒋浠�','鐢熶骇鎬ф湇鍔′笟','鑺傝兘鐜繚','瀹跺叿鍒堕�犺涓�']
+ }
+ },
+ methods: {
+ handleCurrentChange(e) {
+ console.log(e)
+ },
+ currentPage(e) {
+ console.log(e)
+ },
+ clearText() {
+ this.name = ''
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ .box {
+ width: 100%;
+ .box_head {
+ width: 100%;
+ height: 264px;
+ padding: 36px 50px;
+ box-sizing: border-box;
+ background-image: url("../../assets/images/bg_fuwushang.png");
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+ display: flex;
+ flex-direction: column;
+ .box_head_title {
+ font-weight: 600;
+ font-size: 40px;
+ color: #216EEE;
+ }
+ .box_head_info {
+ font-weight: 400;
+ font-size: 16px;
+ color: #333333;
+ margin-top: 14px;
+ }
+ .box_head_search {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin-top: 36px;
+ .left {
+ display: flex;
+ align-items: center;
+ .box_head_search_input {
+ width: 360px;
+ height: 48px;
+ padding: 0 15px;
+ box-sizing: border-box;
+ background: rgba(255,255,255,0.72);
+ border-radius: 2px;
+ margin-right: 10px;
+ display: flex;
+ align-items: center;
+ img {
+ width: 20px;
+ height: 20px;
+ flex-shrink: 0;
+ cursor: pointer;
+ }
+ input {
+ flex: 1;
+ height: 100%;
+ margin-right: 15px;
+ font-weight: 400;
+ font-size: 14px;
+ color: #222222;
+ border: none;
+ outline: none;
+ background: rgba(0,0,0,0);
+ &::-webkit-input-placeholder {
+ color: #999999;
+ font-size: 14px;
+ font-weight: 400;
+ }
+ }
+ }
+ .box_head_search_btn {
+ width: 68px;
+ height: 48px;
+ line-height: 48px;
+ text-align: center;
+ background: #216EEE;
+ border-radius: 2px;
+ font-weight: 600;
+ font-size: 15px;
+ color: #FFFFFF;
+ cursor: pointer;
+ }
+ }
+ .right {
+ width: 173px;
+ height: 48px;
+ padding: 0 15px;
+ box-sizing: border-box;
+ background: #FFFFFF;
+ border-radius: 2px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ img {
+ width: 16px;
+ height: 16px;
+ }
+ .right_name {
+ font-weight: 400;
+ font-size: 15px;
+ color: #333333;
+ }
+ .right_num {
+ font-weight: 600;
+ font-size: 17px;
+ color: #216EEE;
+ }
+ }
+ }
+ }
+ .box_cate {
+ width: 100%;
+ padding: 0 20px;
+ box-sizing: border-box;
+ position: relative;
+ top: -30px;
+ left: 0;
+ z-index: 9;
+ .list {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ .list_zw {
+ width: 24%;
+ height: 0;
+ }
+ .list_item {
+ width: 24%;
+ height: 208px;
+ padding: 20px 30px;
+ box-sizing: border-box;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: space-between;
+ background: #FFFFFF;
+ border-radius: 8px;
+ margin-bottom: 1%;
+ .list_item_image {
+ width: 70px;
+ height: 70px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ overflow: hidden;
+ img {
+ width: 100%;
+ }
+ }
+ .list_item_title {
+ font-weight: 600;
+ font-size: 18px;
+ color: #222222;
+ }
+ .list_item_info {
+ width: 100%;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ font-weight: 400;
+ font-size: 12px;
+ color: #999999;
+ }
+ }
+ }
+ .cate {
+ width: 100%;
+ padding: 20px 30px;
+ margin-bottom: 20px;
+ box-sizing: border-box;
+ background: #FFFFFF;
+ border-radius: 8px;
+ display: flex;
+ justify-content: space-between;
+ .cate_label {
+ flex-shrink: 0;
+ font-weight: 400;
+ font-size: 14px;
+ color: #666666;
+ }
+ .cate_val {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ .active {
+ background: #216EEE !important;
+ border-radius: 2px !important;
+ color: #FFFFFF !important;
+ }
+ .cate_val_row {
+ padding: 4px 12px;
+ box-sizing: border-box;
+ font-weight: 400;
+ font-size: 14px;
+ color: #666666;
+ margin-right: 18px;
+ cursor: pointer;
+ }
+ }
+ .cate_dwon {
+ display: flex;
+ flex-shrink: 0;
+ cursor: pointer;
+ span {
+ font-weight: 400;
+ font-size: 12px;
+ color: #216EEE;
+ }
+ .el-icon-arrow-down {
+ color: #216EEE;
+ }
+ }
+ }
+ .pagination {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ justify-content: center;
+ margin-top: 20px;
+ .pagination_info {
+ width: 100%;
+ text-align: center;
+ font-weight: 400;
+ font-size: 12px;
+ color: #828D9E;
+ margin-top: 30px;
+ }
+ }
+ }
+ }
+</style>
--
Gitblit v1.9.3