From 8a5227c2e5a898004eda1f61180e076ec089fe85 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期二, 29 十一月 2022 10:34:42 +0800
Subject: [PATCH] 图片显示优化
---
src/views/operate/images/index.vue | 977 ++++++++++++++++++++++-------------------
src/components/myUpload/index.vue | 216 ++++----
src/views/operate/images/updateUser/index.vue | 168 ++++--
3 files changed, 745 insertions(+), 616 deletions(-)
diff --git a/src/components/myUpload/index.vue b/src/components/myUpload/index.vue
index b2e666d..2eba7da 100644
--- a/src/components/myUpload/index.vue
+++ b/src/components/myUpload/index.vue
@@ -1,104 +1,111 @@
<template>
- <div class="my-upload">
- <div v-if="pictureList.length > 0" class="image-box">
- <div v-for="image in pictureList" class="image-box-item">
- <i v-if="isShowUpload" @click="handleDeletePicture(image)" class="el-icon-delete image-delete-icon"></i>
- <el-image :key="image" class="image-content" :src="image" ></el-image>
- </div>
- </div>
- <el-upload
+ <div class="my-upload">
+ <div v-if="pictureList.length > 0" class="image-box">
+ <div v-for="image in pictureList" class="image-box-item">
+ <i
v-if="isShowUpload"
- :file-list="fileList"
- action="/sccg/file/medias"
- :multiple="multiple"
- :show-file-list="flag"
- :before-upload="beforeUpload"
- :limit="limit"
- :on-success="handleSuccess"
- :on-error="handleError"
- :list-type="listType"
- :headers="getToken()">
- <div class="upload-btn">
- <i class="el-icon-plus"></i>
- <span>涓婁紶鍥剧墖</span>
- </div>
- </el-upload>
+ @click="handleDeletePicture(image)"
+ class="el-icon-delete image-delete-icon"
+ ></i>
+ <el-image :key="image" class="image-content" :src="image"></el-image>
+ </div>
</div>
+ <el-upload
+ v-if="isShowUpload"
+ :file-list="fileList"
+ action="/sccg/file/medias"
+ :multiple="multiple"
+ :show-file-list="flag"
+ :before-upload="beforeUpload"
+ :limit="limit"
+ :on-success="handleSuccess"
+ :on-error="handleError"
+ :list-type="listType"
+ :headers="getToken()"
+ >
+ <div class="upload-btn">
+ <i class="el-icon-plus"></i>
+ <span>涓婁紶鍥剧墖</span>
+ </div>
+ </el-upload>
+ </div>
</template>
<script>
export default {
- data() {
- return {
- // 鏂囦欢鍒楄〃
- fileList: [],
- // 鏄惁鏄剧ず鏂囦欢鍒楄〃
- flag: false,
- // 澶氶��
- multiple: false,
- // 闄愬埗
- limit: 4,
- // 鏂囦欢鍒楄〃绫诲瀷
- listType: 'picture-card'
- };
+ data() {
+ return {
+ // 鏂囦欢鍒楄〃
+ fileList: [],
+ // 鏄惁鏄剧ず鏂囦欢鍒楄〃
+ flag: false,
+ // 澶氶��
+ multiple: false,
+ // 闄愬埗
+ limit: 4,
+ // 鏂囦欢鍒楄〃绫诲瀷
+ listType: "picture-card",
+ };
+ },
+ methods: {
+ // 涓婁紶涔嬪墠鍥炶皟
+ beforeUpload(rawFile) {
+ if (
+ rawFile.type !== "image/png" &&
+ rawFile.type !== "image/svg+xml" &&
+ rawFile.type !== "image/jpg" &&
+ rawFile.type !== "image/jpeg"
+ ) {
+ this.$message.error("鍥剧墖蹇呴』鏄� jpg/svg/jpeg/png 鏍煎紡!");
+ return false;
+ } else if (rawFile.size / 1024 / 1024 > 5) {
+ this.$message.error("涓婁紶鍥剧墖涓嶈兘瓒呰繃 5MB!");
+ return false;
+ }
+ return true;
},
- methods: {
- // 涓婁紶涔嬪墠鍥炶皟
- beforeUpload(rawFile) {
- if (rawFile.type !== 'image/png' && rawFile.type !== 'image/svg+xml' && rawFile.type !== 'image/jpg' && rawFile.type !== 'image/jpeg') {
- this.$message.error('鍥剧墖蹇呴』鏄� jpg/svg/jpeg/png 鏍煎紡!')
- return false
- } else if (rawFile.size / 1024 / 1024 > 5) {
- this.$message.error('涓婁紶鍥剧墖涓嶈兘瓒呰繃 5MB!')
- return false
- }
- return true
- },
- // 涓婁紶鎴愬姛鍥炶皟
- handleSuccess(res, file, filelist) {
- if(res.data.url1){
- this.$emit('setPictureUrl',{url:res.data.url1});
- }
- else if(res.data.url2){
- this.$emit('setPictureUrl',{url:res.data.url2});
- }
- else if(res.data.url3){
- this.$emit('setPictureUrl',{url:res.data.url3});
- }
- else{
- this.$emit('setPictureUrl',{url:res.data.url4});
- }
- },
- // 涓婁紶澶辫触鍥炶皟
- handleError(err, file, fileList) {
- this.$message({
- type:'error',
- message:err
- })
- },
- // 鑾峰彇token
- getToken() {
- const token = sessionStorage.getItem('token');
- const tokenHead = sessionStorage.getItem('tokenHead');
- if (token && tokenHead) {
- return { Authorization: tokenHead + token }
- }
- },
-
- handleDeletePicture(imageUrl) {
- this.$emit('delPictureUrl', { url: imageUrl });
- }
- },
- props: {
- pictureList: {
- type: Array,
- default: () => []
- },
- isShowUpload: {
- type: Boolean,
- default: () => true
+ // 涓婁紶鎴愬姛鍥炶皟
+ handleSuccess(res, file, filelist) {
+ if (res.data.url1) {
+ this.$emit("setPictureUrl", { url: res.data.url1 });
+ } else if (res.data.url2) {
+ this.$emit("setPictureUrl", { url: res.data.url2 });
+ } else if (res.data.url3) {
+ this.$emit("setPictureUrl", { url: res.data.url3 });
+ } else {
+ this.$emit("setPictureUrl", { url: res.data.url4 });
}
},
-}
+ // 涓婁紶澶辫触鍥炶皟
+ handleError(err, file, fileList) {
+ this.$message({
+ type: "error",
+ message: err,
+ });
+ },
+ // 鑾峰彇token
+ getToken() {
+ const token = sessionStorage.getItem("token");
+ const tokenHead = sessionStorage.getItem("tokenHead");
+ if (token && tokenHead) {
+ return { Authorization: tokenHead + token };
+ }
+ },
+
+ handleDeletePicture(imageUrl) {
+ this.$emit("delPictureUrl", { url: imageUrl });
+ },
+ },
+ props: {
+ pictureList: {
+ type: Array,
+ default: () => [],
+ },
+ isShowUpload: {
+ type: Boolean,
+ default: () => true,
+ },
+ },
+};
</script>
<style lang="scss" scoped>
.my-upload {
@@ -116,7 +123,7 @@
width: 100px;
height: 100px;
- &:hover i{
+ &:hover i {
color: #409eff;
}
@@ -131,6 +138,7 @@
}
.image-box {
display: flex;
+ flex-wrap: wrap;
height: 100px;
margin: 0 10px;
@@ -144,10 +152,12 @@
left: calc(100% - 50px);
opacity: 0;
}
-
+ .image-box-item {
+ padding: 0px 10px;
+ }
.image-box-item:hover {
color: #ffffff;
- opacity: .5;
+ opacity: 0.5;
.image-delete-icon {
z-index: 2;
opacity: 1;
@@ -155,13 +165,13 @@
}
}
- :deep(.el-upload--picture-card) {
- width: 100px;
- height: 100px;
- }
- :deep(.el-upload-list__item){
- width: 100px;
- height: 100px;
- }
+ :deep(.el-upload--picture-card) {
+ width: 100px;
+ height: 100px;
+ }
+ :deep(.el-upload-list__item) {
+ width: 100px;
+ height: 100px;
+ }
}
</style>
\ No newline at end of file
diff --git a/src/views/operate/images/index.vue b/src/views/operate/images/index.vue
index 37e19f6..f939734 100644
--- a/src/views/operate/images/index.vue
+++ b/src/views/operate/images/index.vue
@@ -1,109 +1,165 @@
<template>
- <div class="userList">
- <header>
- <div class="headerContent">
- <div class="search">
- <span>绫诲瀷鏌ヨ:</span>
- <div class="option">
- <el-input v-model="type" placeholder="璇疯緭鍏ョ被鍨�"></el-input>
- </div>
- <span>涓婁紶鏃堕棿:</span>
- <div class="option">
- <el-date-picker
- v-model="datePicked"
- type="datetimerange"
- value-format="yyyy-MM-dd HH:mm:ss"
- range-separator="鑷�"
- start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡">
- </el-date-picker>
- </div>
- <div class="findBtn">
- <el-button type="primary" @click="getImageResourceList">鏌ヨ</el-button>
- </div>
- <div class="findBtn">
- <el-button type="primary" @click="handleUpdateImageResource(null, 'create')">娣诲姞鍥剧墖</el-button>
- </div>
- </div>
- </div>
- </header>
- <main>
- <div class="mainContent">
- <div class="type-nav">
- <div @click="changeTypeChecked(item.value)" v-for="item in typeList" :key="item.name"
- :class="[item.checked ? 'is-active' : '', 'type-item']">{{ item.name }}</div>
- </div>
- <!-- 鏁版嵁灞曠ず -->
- <el-table ref="multipleTable"
- :header-cell-style="{ background: '#06122c', 'font-size': '12px', color: '#4b9bb7', 'font-weight': '650', 'line-height': '45px' }"
- :data="tableData" style="width: 100%" :row-class-name="tableRowClassName"
- @selection-change="tableChange">
- <el-table-column type="selection" min-width="5">
- </el-table-column>
- <el-table-column prop="code" label="鎵�灞炰簨浠剁紪鍙�" min-width="18">
- </el-table-column>
- <el-table-column prop="category" label="闂绫诲埆" min-width="8">
- <template v-if="scope.row.category" slot-scope="scope">
- <span>{{ getCategory(scope.row.category).label }}</span>
- </template>
- </el-table-column>
- <el-table-column prop="eventSource" label="浜嬩欢鏉ユ簮" min-width="8">
- <template v-if="scope.row.eventSource" slot-scope="scope">
- <span>{{ getEventSource(scope.row.eventSource).label }}</span>
- </template>
- </el-table-column>
- <el-table-column prop="regionName" label="绀惧尯鍚嶇О" min-width="8">
- </el-table-column>
- <el-table-column prop="id" label="鍥剧墖Id" min-width="8">
- </el-table-column>
- <el-table-column prop="createTime" label="涓婁紶鏃堕棿" min-width="15" v-if="mystatus === 1">
- </el-table-column>
- <el-table-column prop="operation" label="鎿嶄綔" min-width="15">
- <template slot-scope="scope">
- <div class="operation">
- <span @click="handleUpdateImageResource(scope.row, 'view')">鏌ョ湅</span>
- <span class="line">|</span>
- <span @click="handleUpdateImageResource(scope.row, 'update')">淇敼</span>
- <span class="line">|</span>
- <span @click="handleDelete(scope.row)">鍒犻櫎</span>
- </div>
- </template>
- </el-table-column>
- </el-table>
- <el-dialog
- :visible.sync="isShowUploadDialog"
- :destroy-on-close="true"
- :key="dialogType"
- width="40%"
- :title="getDialogTitle"
+ <div class="userList">
+ <header>
+ <div class="headerContent">
+ <div class="search">
+ <span>绫诲瀷鏌ヨ:</span>
+ <div class="option">
+ <el-input v-model="type" placeholder="璇疯緭鍏ョ被鍨�"></el-input>
+ </div>
+ <span>涓婁紶鏃堕棿:</span>
+ <div class="option">
+ <el-date-picker
+ v-model="datePicked"
+ type="datetimerange"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ >
+ </el-date-picker>
+ </div>
+ <div class="findBtn">
+ <el-button type="primary" @click="getImageResourceList"
+ >鏌ヨ</el-button
+ >
+ </div>
+ <!-- <div class="findBtn">
+ <el-button
+ type="primary"
+ @click="handleUpdateImageResource(null, 'create')"
+ >娣诲姞鍥剧墖</el-button
+ >
+ </div> -->
+ </div>
+ </div>
+ </header>
+ <main>
+ <div class="mainContent">
+ <div class="type-nav">
+ <div
+ @click="changeTypeChecked(item.value)"
+ v-for="item in typeList"
+ :key="item.name"
+ :class="[item.checked ? 'is-active' : '', 'type-item']"
+ >
+ {{ item.name }}
+ </div>
+ </div>
+ <!-- 鏁版嵁灞曠ず -->
+ <el-table
+ ref="multipleTable"
+ :header-cell-style="{
+ background: '#06122c',
+ 'font-size': '12px',
+ color: '#4b9bb7',
+ 'font-weight': '650',
+ 'line-height': '45px',
+ }"
+ :data="tableData"
+ style="width: 100%"
+ :row-class-name="tableRowClassName"
+ @selection-change="tableChange"
+ >
+ <el-table-column type="selection" min-width="5"> </el-table-column>
+ <el-table-column prop="code" label="鎵�灞炰簨浠剁紪鍙�" min-width="18">
+ </el-table-column>
+ <el-table-column prop="category" label="闂绫诲埆" min-width="8">
+ <template v-if="scope.row.category" slot-scope="scope">
+ <span>{{ getCategory(scope.row.category).label }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="eventSource" label="浜嬩欢鏉ユ簮" min-width="8">
+ <template v-if="scope.row.eventSource" slot-scope="scope">
+ <span>{{ getEventSource(scope.row.eventSource).label }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="regionName" label="绀惧尯鍚嶇О" min-width="8">
+ </el-table-column>
+ <el-table-column prop="id" label="鍥剧墖Id" min-width="8">
+ </el-table-column>
+ <el-table-column
+ prop="createTime"
+ label="涓婁紶鏃堕棿"
+ min-width="15"
+ v-if="mystatus === 1"
+ >
+ </el-table-column>
+ <el-table-column prop="operation" label="鎿嶄綔" min-width="15">
+ <template slot-scope="scope">
+ <div class="operation">
+ <span @click="handleUpdateImageResource(scope.row, 'view')"
+ >鏌ョ湅</span
>
- <updateUser v-if="isShowUploadDialog" @closeDialog="closeDialog" :dialogType="dialogType" :originalData="originalData" />
- </el-dialog>
- <div class="tools">
- <div class="funs">
- <div class="funsItem funs-sp">
- <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox>
- </div>
- <div class="funsItem funs-sp">
- <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox>
- </div>
- <div class="funsItem">
- <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange" disabled>
- <el-option v-for="item in options" :key="item.value" :label="item.label"
- :value="item.value" :disabled="item.disabled">
- </el-option>
- </el-select>
- </div>
- </div>
- <div class="pagination">
- <el-pagination background :current-page="currentPage" layout="prev, pager, next"
- :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage">
- </el-pagination>
- </div>
- </div>
+ <span class="line">|</span>
+ <span @click="handleUpdateImageResource(scope.row, 'update')"
+ >淇敼</span
+ >
+ <span class="line">|</span>
+ <span @click="handleDelete(scope.row)">鍒犻櫎</span>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ <el-dialog
+ :visible.sync="isShowUploadDialog"
+ :destroy-on-close="true"
+ :key="dialogType"
+ width="40%"
+ :title="getDialogTitle"
+ >
+ <updateUser
+ v-if="isShowUploadDialog"
+ @closeDialog="closeDialog"
+ :dialogType="dialogType"
+ :originalData="originalData"
+ />
+ </el-dialog>
+ <div class="tools">
+ <div class="funs">
+ <div class="funsItem funs-sp">
+ <el-checkbox v-model="all" @change="selectAll()"
+ >鍏ㄩ��</el-checkbox
+ >
</div>
- </main>
- </div>
+ <div class="funsItem funs-sp">
+ <el-checkbox v-model="unsame" @change="disSame(tableData)"
+ >鍙嶉��</el-checkbox
+ >
+ </div>
+ <div class="funsItem">
+ <el-select
+ v-model="myIdx"
+ placeholder="鎵归噺鎿嶄綔"
+ @change="selectChange"
+ disabled
+ >
+ <el-option
+ v-for="item in options"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ :disabled="item.disabled"
+ >
+ </el-option>
+ </el-select>
+ </div>
+ </div>
+ <div class="pagination">
+ <el-pagination
+ background
+ :current-page="currentPage"
+ layout="prev, pager, next"
+ :total="totalNum"
+ :page-size="pageSize"
+ @current-change="changeCurrentPage"
+ >
+ </el-pagination>
+ </div>
+ </div>
+ </div>
+ </main>
+ </div>
</template>
<script>
import updateUser from "./updateUser";
@@ -111,394 +167,397 @@
import { CATEGOTY, EVENT_SOURCE } from "@/utils/helper";
export default {
- components: { updateUser },
+ components: { updateUser },
- computed: {
- getDialogTitle() {
- if (this.dialogType === 'create') {
- return '鍒涘缓';
- }
+ computed: {
+ getDialogTitle() {
+ if (this.dialogType === "create") {
+ return "鍒涘缓";
+ }
- if (this.dialogType === 'update') {
- return '鏇存柊';
- }
+ if (this.dialogType === "update") {
+ return "鏇存柊";
+ }
- if (this.dialogType === 'view') {
- return '鏌ョ湅';
- }
+ if (this.dialogType === "view") {
+ return "鏌ョ湅";
}
},
+ },
- data() {
- return {
- isShowUploadDialog:false,
- dialogType: 'create',
- originalData: null,
- type: '',
- size: '',
- importTime: null,
- tableData: [],
- dialogUpload: false,
- dialogView: false,
- updateFlag:false,
- userInfo:{},
- info: {},
- totalNum: 5,
- pageSize: 10,
- currentPage: 1,
- all: false,
- unsame: false,
- myIdx: 0,
- preMyIdx: 0,
- options: [
- {
- value: 0,
- label: '鎵归噺鎿嶄綔',
- disabled: true,
- },
- {
- value: 1,
- label: '鎵归噺鍚敤',
- },
- {
- value: 2,
- label: '鎵归噺绂佺敤',
- },
- {
- value: 3,
- label: '鎵归噺鍒犻櫎',
- }
- ],
- tempList: [],
- typeList: [
- {
- name: '鎽勫儚澶存帹閫�',
- value: 1,
- checked: true
- },
- {
- name: '鍗曞叺鎺ㄩ��',
- value: 2,
- checked: false,
- },
- ],
- mystatus: 1,
- caseId: '',
- caseCode: null,
- dialogAdd: false,
- datePicked: null,
- }
+ data() {
+ return {
+ isShowUploadDialog: false,
+ dialogType: "create",
+ originalData: null,
+ type: "",
+ size: "",
+ importTime: null,
+ tableData: [],
+ dialogUpload: false,
+ dialogView: false,
+ updateFlag: false,
+ userInfo: {},
+ info: {},
+ totalNum: 5,
+ pageSize: 10,
+ currentPage: 1,
+ all: false,
+ unsame: false,
+ myIdx: 0,
+ preMyIdx: 0,
+ options: [
+ {
+ value: 0,
+ label: "鎵归噺鎿嶄綔",
+ disabled: true,
+ },
+ {
+ value: 1,
+ label: "鎵归噺鍚敤",
+ },
+ {
+ value: 2,
+ label: "鎵归噺绂佺敤",
+ },
+ {
+ value: 3,
+ label: "鎵归噺鍒犻櫎",
+ },
+ ],
+ tempList: [],
+ typeList: [
+ {
+ name: "鎽勫儚澶存帹閫�",
+ value: 1,
+ checked: true,
+ },
+ {
+ name: "鍗曞叺鎺ㄩ��",
+ value: 2,
+ checked: false,
+ },
+ ],
+ mystatus: 1,
+ caseId: "",
+ caseCode: null,
+ dialogAdd: false,
+ datePicked: null,
+ };
+ },
+ created() {
+ this.size = this.typeList.find((item) => item.checked).value;
+ this.getImageResourceList();
+ },
+ methods: {
+ //淇敼
+ handleUpdateImageResource(data, type) {
+ this.dialogType = type;
+ this.originalData = data;
+ this.isShowUploadDialog = true;
},
- created() {
- this.size = this.typeList.find(item => item.checked).value;
+
+ // 鎵归噺鍒犻櫎
+ mulDelete(idArr) {
+ imageManagement
+ .deleteImageResources({ ids: idArr })
+ .then(() => {
+ this.$message.success("鎿嶄綔鎴愬姛");
+ this.getImageResourceList();
+ })
+ .catch((err) => this.$message.error(`${err}`));
+ },
+ // 鎵ц涓嬫媺妗嗘搷浣�
+ selectChange(list) {
+ if (this.tempList.length !== 0) {
+ if (list === 3) {
+ this.preMyIdx = list;
+ this.mulDelete(this.tempList);
+ }
+ } else {
+ this.myIdx = this.preMyIdx;
+ this.$message({
+ type: "warning",
+ message: "鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁",
+ });
+ }
+ },
+ // 鐩戝惉琛ㄦ牸
+ tableChange(list) {
+ this.tempList = [];
+ list.forEach((item) => {
+ this.tempList.push(item.code);
+ });
+ this.all = list.length === this.tableData.length;
+ },
+ // 鍏ㄩ��
+ selectAll() {
+ this.$refs.multipleTable.toggleAllSelection();
+ },
+ // 鍙嶉��
+ disSame(list) {
+ list.forEach((row) => {
+ this.$refs.multipleTable.toggleRowSelection(row);
+ });
+ },
+ // 鍒犻櫎鍗曟潯鏁版嵁
+ handleDelete({ id }) {
+ this.$confirm("纭鍒犻櫎锛�").then(() => {
+ imageManagement
+ .deleteImageResource({ id: id })
+ .then(() => {
+ this.$message.success("鎿嶄綔鎴愬姛");
+ })
+ .catch((err) => this.$message.error(`${err}`));
+ });
+ },
+
+ getImageResourceList() {
+ const dateParams = {};
+ if (this.datePicked) {
+ dateParams.startTime = dateParams[0];
+ dateParams.endTime = dateParams[1];
+ }
+ imageManagement
+ .getImageResources({
+ current: this.currentPage,
+ size: this.pageSize,
+ type: this.size,
+ ...dateParams,
+ })
+ .then(({ records, total }) => {
+ this.tableData = records;
+ this.totalNum = total;
+ })
+ .catch((err) => this.$message({ type: "error", message: err }));
+ },
+ // 鏇存敼杩濊/杩濆缓
+ changeTypeChecked(idx) {
+ this.typeList.forEach((item) => {
+ item.checked = item.value === idx;
+ });
+ this.mystatus = idx + 1;
+ this.size = idx;
this.getImageResourceList();
},
- methods: {
- //淇敼
- handleUpdateImageResource(data, type){
- this.dialogType = type;
- this.originalData = data;
- this.isShowUploadDialog = true;
- },
-
- // 鎵归噺鍒犻櫎
- mulDelete(idArr) {
- imageManagement.deleteImageResources({ ids: idArr })
- .then(() => {
- this.$message.success('鎿嶄綔鎴愬姛');
- this.getImageResourceList();
- })
- .catch(err => this.$message.error(`${err}`))
- },
- // 鎵ц涓嬫媺妗嗘搷浣�
- selectChange(list) {
- if (this.tempList.length !== 0) {
- if (list === 3) {
- this.preMyIdx = list;
- this.mulDelete(this.tempList);
- }
- } else {
- this.myIdx = this.preMyIdx;
- this.$message({
- type: 'warning',
- message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁',
- })
- }
- },
- // 鐩戝惉琛ㄦ牸
- tableChange(list) {
- this.tempList = [];
- list.forEach(item => {
- this.tempList.push(item.code);
- })
- this.all = list.length === this.tableData.length;
- },
- // 鍏ㄩ��
- selectAll() {
- this.$refs.multipleTable.toggleAllSelection();
- },
- // 鍙嶉��
- disSame(list) {
- list.forEach(row => {
- this.$refs.multipleTable.toggleRowSelection(row)
- })
- },
- // 鍒犻櫎鍗曟潯鏁版嵁
- handleDelete({ id }) {
- this.$confirm('纭鍒犻櫎锛�')
- .then(() => {
- imageManagement.deleteImageResource({ id: id })
- .then(() => {
- this.$message.success('鎿嶄綔鎴愬姛');
- })
- .catch(err => this.$message.error(`${err}`))
- })
- },
-
- getImageResourceList() {
- const dateParams = {};
- if (this.datePicked) {
- dateParams.startTime = dateParams[0];
- dateParams.endTime = dateParams[1]
- }
- imageManagement.getImageResources({ current: this.currentPage, size: this.pageSize, type: this.size, ...dateParams })
- .then(({ records, total }) => {
- this.tableData = records;
- this.totalNum = total;
- })
- .catch(err => this.$message({ type: 'error', message: err }))
- },
- // 鏇存敼杩濊/杩濆缓
- changeTypeChecked(idx) {
- this.typeList.forEach(item => {
- item.checked = item.value === idx;
- });
- this.mystatus = idx + 1;
- this.size = idx;
- this.getImageResourceList();
- },
- // 璁剧疆琛ㄦ牸鏂戦┈绾�
- tableRowClassName({ row, rowIndex }) {
- if ((rowIndex + 1) % 2 === 0) {
- return 'warning-row';
- } else {
- return 'success-row';
- }
- },
- // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠�
- changeCurrentPage(page) {
- this.currentPage = page;
- this.getImageResourceList();
- },
- opernDialog(data) {
- this.dialogUpload = true;
- this.caseId = data.id;
- this.caseCode = data.code
- },
-
- closeDialog() {
- this.isShowUploadDialog = false;
- this.getImageResourceList();
- },
-
- getCategory(value) {
- return CATEGOTY.find(item => item.value === value);
- },
-
- getEventSource(value) {
- return EVENT_SOURCE.find(item => item.value === value);
+ // 璁剧疆琛ㄦ牸鏂戦┈绾�
+ tableRowClassName({ row, rowIndex }) {
+ if ((rowIndex + 1) % 2 === 0) {
+ return "warning-row";
+ } else {
+ return "success-row";
}
- }
-}
+ },
+ // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠�
+ changeCurrentPage(page) {
+ this.currentPage = page;
+ this.getImageResourceList();
+ },
+ opernDialog(data) {
+ this.dialogUpload = true;
+ this.caseId = data.id;
+ this.caseCode = data.code;
+ },
+
+ closeDialog() {
+ this.isShowUploadDialog = false;
+ this.getImageResourceList();
+ },
+
+ getCategory(value) {
+ return CATEGOTY.find((item) => item.value === value);
+ },
+
+ getEventSource(value) {
+ return EVENT_SOURCE.find((item) => item.value === value);
+ },
+ },
+};
</script>
<style lang="scss" scoped>
.userList {
- text-align: left;
- margin: 10px 20px;
- color: #4b9bb7;
+ text-align: left;
+ margin: 10px 20px;
+ color: #4b9bb7;
- header {
- background-color: #09152f;
+ header {
+ background-color: #09152f;
- .headerContent {
- padding: 0 40px;
- display: flex;
- line-height: 100px;
- justify-content: space-between;
- align-items: center;
+ .headerContent {
+ padding: 0 40px;
+ display: flex;
+ line-height: 100px;
+ justify-content: space-between;
+ align-items: center;
- .search {
- display: flex;
- justify-content: flex-start;
+ .search {
+ display: flex;
+ justify-content: flex-start;
- span {
- flex: 1;
- }
-
- .el-input {
- flex: 2;
- color: #1d3f57;
-
- &::v-deep .el-input__inner {
- background-color: #09152f;
- border: 1px solid #17324c;
- }
- }
-
- }
-
- .findBtn {
- line-height: 100px;
- margin-left: 15px;
- display: flex;
- align-items: center;
- margin-top: -2px;
-
- .el-button {
- padding: 12px 25px;
- border-radius: 20px;
- }
- }
-
- .addBtn {
- background-color: #eb5d01;
- border: none;
- border-radius: 20px;
- padding: 12px 30px;
- }
+ span {
+ flex: 1;
}
+
+ .el-input {
+ flex: 2;
+ color: #1d3f57;
+
+ &::v-deep .el-input__inner {
+ background-color: #09152f;
+ border: 1px solid #17324c;
+ }
+ }
+ }
+
+ .findBtn {
+ line-height: 100px;
+ margin-left: 15px;
+ display: flex;
+ align-items: center;
+ margin-top: -2px;
+
+ .el-button {
+ padding: 12px 25px;
+ border-radius: 20px;
+ }
+ }
+
+ .addBtn {
+ background-color: #eb5d01;
+ border: none;
+ border-radius: 20px;
+ padding: 12px 30px;
+ }
+ }
+ }
+
+ &::v-deep .el-input__inner {
+ background-color: #09152f;
+ border: 1px solid #17324c;
+ }
+
+ main {
+ background-color: #09152f;
+ margin-top: 20px;
+ padding-bottom: 50px;
+
+ .btn span:hover {
+ cursor: pointer;
}
- &::v-deep .el-input__inner {
- background-color: #09152f;
+ .type-nav {
+ display: flex;
+ line-height: 40px;
+ margin-left: 30px;
+ padding-top: 10px;
+ margin-bottom: 10px;
+
+ .type-item {
+ min-width: 80px;
+ text-align: center;
+ padding-right: 10px;
+
+ &:hover {
+ cursor: pointer;
+ }
+ }
+
+ .is-active {
+ background-color: #070f22;
+ border-radius: 4px;
+ color: #fff;
+ }
+ }
+
+ .tools {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 0 20px;
+
+ .funs-sp {
border: 1px solid #17324c;
- }
+ }
- main {
- background-color: #09152f;
- margin-top: 20px;
- padding-bottom: 50px;
+ .funs {
+ display: flex;
- .btn span:hover {
- cursor: pointer;
- }
+ .funsItem {
+ line-height: 28px;
+ display: flex;
+ align-items: center;
+ border-radius: 4px;
+ font-size: 12px;
+ margin-left: 10px;
- .type-nav {
- display: flex;
- line-height: 40px;
- margin-left: 30px;
- padding-top: 10px;
- margin-bottom: 10px;
+ .el-checkbox {
+ width: 80px;
+ padding: 0 10px;
+ }
- .type-item {
- min-width: 80px;
- text-align: center;
- padding-right: 10px;
+ .el-select {
+ width: 120px;
+ }
- &:hover {
- cursor: pointer;
- }
- }
+ &:hover {
+ border: 1px solid #4b9bb7;
+ }
- .is-active {
- background-color: #070f22;
- border-radius: 4px;
- color: #fff;
- }
- }
-
- .tools {
- display: flex;
- justify-content: space-between;
- align-items: center;
- padding: 0 20px;
-
- .funs-sp {
- border: 1px solid #17324c;
- }
-
- .funs {
- display: flex;
-
- .funsItem {
- line-height: 28px;
- display: flex;
- align-items: center;
- border-radius: 4px;
- font-size: 12px;
- margin-left: 10px;
-
- .el-checkbox {
- width: 80px;
- padding: 0 10px;
- }
-
- .el-select {
- width: 120px;
- }
-
- &:hover {
- border: 1px solid #4b9bb7;
- }
-
- &:hover .el-checkbox {
- color: #4b9bb7;
- }
- }
-
- }
-
- .pagination {
- margin-top: 50px;
- display: flex;
- line-height: 50px;
- justify-content: center;
-
- .el-pagination {
-
- &::v-deep li,
- &::v-deep .btn-prev,
- &::v-deep .btn-next {
- background-color: #071f39;
- color: #4b9bb7;
- }
-
- &::v-deep .active {
- background-color: #409eff;
- color: #fff;
- }
- }
- }
- }
-
- .el-table {
+ &:hover .el-checkbox {
color: #4b9bb7;
- font-size: 10px;
-
- &::v-deep .cell {
- text-overflow: ellipsis;
- white-space: nowrap;
- overflow: hidden;
- }
-
-
- .operation {
- display: flex;
-
- .line {
- padding: 0 5px;
- }
-
- span:hover {
- cursor: pointer;
- }
- }
+ }
}
+ }
+
+ .pagination {
+ margin-top: 50px;
+ display: flex;
+ line-height: 50px;
+ justify-content: center;
+
+ .el-pagination {
+ &::v-deep li,
+ &::v-deep .btn-prev,
+ &::v-deep .btn-next {
+ background-color: #071f39;
+ color: #4b9bb7;
+ }
+
+ &::v-deep .active {
+ background-color: #409eff;
+ color: #fff;
+ }
+ }
+ }
}
- .line {
- padding: 0 5px;
+ .el-table {
+ color: #4b9bb7;
+ font-size: 10px;
+
+ &::v-deep .cell {
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ }
+
+ .operation {
+ display: flex;
+
+ .line {
+ padding: 0 5px;
+ }
+
+ span:hover {
+ cursor: pointer;
+ }
+ }
}
+ }
+
+ .line {
+ padding: 0 5px;
+ }
:deep(.el-range-input) {
background-color: #09152f;
diff --git a/src/views/operate/images/updateUser/index.vue b/src/views/operate/images/updateUser/index.vue
index 309a684..38cc177 100644
--- a/src/views/operate/images/updateUser/index.vue
+++ b/src/views/operate/images/updateUser/index.vue
@@ -2,19 +2,36 @@
<div class="updateUser">
<main>
<div class="mainContent">
- <el-form label-position="right" label-width="150px" :model="imagedata" :rules="rules" :disabled="isDisabled" ref="user" style="width: 100%;">
+ <el-form
+ label-position="right"
+ label-width="150px"
+ :model="imagedata"
+ :rules="rules"
+ :disabled="isDisabled"
+ ref="user"
+ style="width: 100%"
+ >
<el-form-item prop="belongToId" label="鎵�灞炰簨浠剁紪鍙�">
- <el-input v-model="imagedata.belongToId"></el-input>
+ <el-input v-model="imagedata.code"></el-input>
</el-form-item>
<el-form-item prop="eventSource" label="浜嬩欢鏉ユ簮">
- <el-input v-model="imagedata.eventSource"></el-input>
+ <el-input
+ v-model="getEventSource(imagedata.eventSource).label"
+ ></el-input>
</el-form-item>
<el-form-item prop="category" label="闂绫诲埆">
- <el-input v-model="imagedata.category"></el-input>
+ <el-input
+ v-model="getCategory(imagedata.category).label"
+ ></el-input>
</el-form-item>
<el-form-item prop="type" label="绫诲瀷">
<el-select v-model="imagedata.type">
- <el-option v-for="item in getResourceType()" :key="item.value" :label="item.label" :value="item.value" />
+ <el-option
+ v-for="item in getResourceType()"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
</el-select>
</el-form-item>
<el-form-item prop="regionName" label="绀惧尯鍚嶇О">
@@ -24,10 +41,20 @@
<el-input v-model="imagedata.id"></el-input>
</el-form-item>
<el-form-item prop="url" label="鍥剧墖:" min-width="8">
- <my-upload :picture-list="imageList" :is-show-upload="dialogType !== 'view'" @setPictureUrl="setPictureUrl" @delPictureUrl="delPictureUrl"></my-upload>
+ <my-upload
+ :picture-list="imageList"
+ :is-show-upload="dialogType !== 'view'"
+ @setPictureUrl="setPictureUrl"
+ @delPictureUrl="delPictureUrl"
+ ></my-upload>
</el-form-item>
<div v-if="!isDisabled" class="optionBtn">
- <el-button type="primary" class="btn submit" @click.native.prevent="onSubmit">鎻愪氦</el-button>
+ <el-button
+ type="primary"
+ class="btn submit"
+ @click.native.prevent="onSubmit"
+ >鎻愪氦</el-button
+ >
</div>
</el-form>
</div>
@@ -35,7 +62,12 @@
</div>
</template>
<script>
-import { deepClone, RESOURCE_TYPE } from "@/utils/helper";
+import {
+ deepClone,
+ RESOURCE_TYPE,
+ CATEGOTY,
+ EVENT_SOURCE,
+} from "@/utils/helper";
import imageManagement from "@/api/operate/imageManagement";
import { FILE_ORIGINAL_URL } from "@/utils";
import MyUpload from "@/components/myUpload";
@@ -47,43 +79,59 @@
if (this.imagedata.url) {
callback();
} else {
- callback(new Error('璇蜂笂浼犲浘鐗�'));
+ callback(new Error("璇蜂笂浼犲浘鐗�"));
}
};
return {
imagedata: {
- belongToId: '',
- eventSource: '',
- regionName: '',
- category: '',
- id: '',
- url: '',
- type: ''
+ belongToId: "",
+ eventSource: 1,
+ regionName: "",
+ category: 1,
+ id: "",
+ url: "",
+ type: "",
},
rules: {
- belongToId: [{ required: true, trigger: 'blur', message: '璇疯緭鍏ユ墍灞炰簨浠剁紪鍙�' }],
- eventSource: [{ required: true, trigger: 'blur', message: '璇疯緭鍏ヤ簨浠舵潵婧�' }],
- regionName: [{ required: true, trigger: 'blur', message: '璇疯緭鍏ョぞ鍖哄悕绉�' }],
- id: [{ required: true, trigger: 'blur', message: '璇疯緭鍏ュ浘鐗嘔d' }],
- category: [{ required: true, trigger: 'blue', message: '璇疯緭鍏ラ棶棰樼被鍨�' }],
+ belongToId: [
+ { required: true, trigger: "blur", message: "璇疯緭鍏ユ墍灞炰簨浠剁紪鍙�" },
+ ],
+ eventSource: [
+ { required: true, trigger: "blur", message: "璇疯緭鍏ヤ簨浠舵潵婧�" },
+ ],
+ regionName: [
+ { required: true, trigger: "blur", message: "璇疯緭鍏ョぞ鍖哄悕绉�" },
+ ],
+ id: [{ required: true, trigger: "blur", message: "璇疯緭鍏ュ浘鐗嘔d" }],
+ category: [
+ { required: true, trigger: "blue", message: "璇疯緭鍏ラ棶棰樼被鍨�" },
+ ],
url: [{ required: true, validator: validateImageUrl }],
- type: [{ required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨绫诲瀷' }]
+ type: [
+ {
+ required: true,
+ trigger: ["blur", "change"],
+ message: "璇烽�夋嫨绫诲瀷",
+ },
+ ],
},
isDisabled: false,
- imageList: []
- }
+ imageList: [],
+ };
},
created() {
- this.imagedata = deepClone(this.originalData);
- if (this.dialogType !== 'create') {
- this.imageList = this.imagedata.url.split(',');
+ if (this.originalData) {
+ this.imagedata = deepClone(this.originalData);
}
- this.isDisabled = this.dialogType === 'view';
+ if (this.dialogType !== "create") {
+ this.imageList = this.imagedata.url.split(",");
+ }
+ this.isDisabled = this.dialogType === "view";
},
methods: {
onSubmit() {
- this.$refs.user.validate(valid => {
+ this.$refs.user.validate((valid) => {
if (valid) {
const params = Object.assign({}, this.imagedata);
delete params.regionName;
@@ -91,48 +139,59 @@
delete params.eventSource;
delete params.id;
params.belongToId = +params.belongToId;
- if (this.dialogType === 'create') {
- imageManagement.addImageResource(params)
- .then(() => {
- this.$message.success('鎿嶄綔鎴愬姛');
- this.$emit('closeDialog');
- })
- .catch(err => this.$message.error(`${err}`))
+ if (this.dialogType === "create") {
+ imageManagement
+ .addImageResource(params)
+ .then(() => {
+ this.$message.success("鎿嶄綔鎴愬姛");
+ this.$emit("closeDialog");
+ })
+ .catch((err) => this.$message.error(`${err}`));
} else {
- imageManagement.updateImageResource(params)
- .then(() => {
- this.$message.success('鎿嶄綔鎴愬姛');
- this.$emit('closeDialog');
- })
- .catch(err => this.$message.error(`${err}`))
+ imageManagement
+ .updateImageResource(params)
+ .then(() => {
+ this.$message.success("鎿嶄綔鎴愬姛");
+ this.$emit("closeDialog");
+ })
+ .catch((err) => this.$message.error(`${err}`));
}
} else {
- this.$message.warning('璇锋鏌ュ繀濉」');
+ this.$message.warning("璇锋鏌ュ繀濉」");
}
- })
+ });
},
setPictureUrl({ url }) {
this.imageList.push(`${FILE_ORIGINAL_URL}${url}`);
- this.imagedata.url = this.imageList.join(',');
+ this.imagedata.url = this.imageList.join(",");
},
delPictureUrl({ url }) {
- this.imageList = this.imageList.filter(item => item !== url);
- this.imagedata.url = this.imageList.join(',');
+ this.imageList = this.imageList.filter((item) => item !== url);
+ this.imagedata.url = this.imageList.join(",");
+ },
+ getCategory(value) {
+ return CATEGOTY.find((item) => item.value === value);
+ },
+
+ getEventSource(value) {
+ return EVENT_SOURCE.find((item) => item.value === value);
},
getResourceType(value) {
- return value ? RESOURCE_TYPE.find(item => item.value === value) : RESOURCE_TYPE;
- }
+ return value
+ ? RESOURCE_TYPE.find((item) => item.value === value)
+ : RESOURCE_TYPE;
+ },
},
props: {
originalData: {
type: Object,
- default: () => null
+ default: () => null,
},
dialogType: {
type: String,
- default: () => 'create'
- }
- }
+ default: () => "create",
+ },
+ },
};
</script>
<style lang="scss" scoped>
@@ -281,7 +340,8 @@
color: red;
}
-.el-input, .el-select {
+.el-input,
+.el-select {
width: 280px !important;
}
</style>
\ No newline at end of file
--
Gitblit v1.8.0