Commit f9ecf430 authored by Your Name's avatar Your Name

账户管理

parent 1bb1a26a
'use strict'
// Template version: 1.3.1
// see http://vuejs-templates.github.io/webpack for documentation.
const path = require('path')
module.exports = {
dev: {
// Paths
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {
'/mall': {
target: "http://111.203.232.175:8088/mall",
// target: "http://192.168.110.67/mall",
// target: "http://192.168.204.66:8088/mall",
changeOrigin: true,
pathRewrite: {
'^/mall': '/' // 重写接口
}
},
'/aa': {
target: "http://111.203.232.175:8085",
changeOrigin: true,
pathRewrite: {
'^/aa': '/' // 重写接口
}
}
},
// Various Dev Server settings
// host: 'localhost', // can be overwritten by process.env.HOST
host: '0.0.0.0', // can be overwritten by process.env.HOST
port: 3000, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
autoOpenBrowser: false,
errorOverlay: true,
notifyOnErrors: true,
poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
/**
* Source Maps
*/
// https://webpack.js.org/configuration/devtool/#development
devtool: 'cheap-module-eval-source-map',
// If you have problems debugging vue-files in devtools,
// set this to false - it *may* help
// https://vue-loader.vuejs.org/en/options.html#cachebusting
cacheBusting: true,
cssSourceMap: true
},
build: {
// Template for index.html
index: path.resolve(__dirname, '../plat/index.html'),
// Paths
assetsRoot: path.resolve(__dirname, '../plat'),
assetsSubDirectory: 'static',
assetsPublicPath: './',
/**
* Source Maps
*/
productionSourceMap: false,
// https://webpack.js.org/configuration/devtool/#production
devtool: '#source-map',
// Gzip off by default as many popular static hosts such as
// Surge or Netlify already gzip all static assets for you.
// Before setting to `true`, make sure to:
// npm install --save-dev compression-webpack-plugin
productionGzip: false,
productionGzipExtensions: ['js', 'css'],
// Run the build command with an extra argument to
// View the bundle analyzer report after build finishes:
// `npm run build --report`
// Set to `true` or `false` to always turn it on or off
bundleAnalyzerReport: process.env.npm_config_report
}
}
'use strict'
// Template version: 1.3.1
// see http://vuejs-templates.github.io/webpack for documentation.
const path = require('path')
module.exports = {
dev: {
// Paths
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {
'/mall': {
target: "http://111.203.232.175:8088/mall",
// target: "http://192.168.110.67/mall",
// target: "http://192.168.204.66:8088/mall",
changeOrigin: true,
pathRewrite: {
'^/mall': '/' // 重写接口
}
},
'/aa': {
target: "http://111.203.232.175:8085",
changeOrigin: true,
pathRewrite: {
'^/aa': '/' // 重写接口
}
}
},
// Various Dev Server settings
// host: 'localhost', // can be overwritten by process.env.HOST
host: '0.0.0.0', // can be overwritten by process.env.HOST
port: 3000, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
autoOpenBrowser: false,
errorOverlay: true,
notifyOnErrors: true,
poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
/**
* Source Maps
*/
// https://webpack.js.org/configuration/devtool/#development
devtool: 'cheap-module-eval-source-map',
// If you have problems debugging vue-files in devtools,
// set this to false - it *may* help
// https://vue-loader.vuejs.org/en/options.html#cachebusting
cacheBusting: true,
cssSourceMap: true
},
build: {
// Template for index.html
index: path.resolve(__dirname, '../plat/index.html'),
// Paths
assetsRoot: path.resolve(__dirname, '../plat'),
assetsSubDirectory: 'static',
assetsPublicPath: './',
/**
* Source Maps
*/
productionSourceMap: false,
// https://webpack.js.org/configuration/devtool/#production
devtool: '#source-map',
// Gzip off by default as many popular static hosts such as
// Surge or Netlify already gzip all static assets for you.
// Before setting to `true`, make sure to:
// npm install --save-dev compression-webpack-plugin
productionGzip: false,
productionGzipExtensions: ['js', 'css'],
// Run the build command with an extra argument to
// View the bundle analyzer report after build finishes:
// `npm run build --report`
// Set to `true` or `false` to always turn it on or off
bundleAnalyzerReport: process.env.npm_config_report
}
}
{
"name": "hall",
"version": "1.0.0",
"description": "manage",
"author": "yuyan <yuyan@wisenergy.com.cn>",
"private": true,
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"start": "npm run dev",
"build": "node build/build.js"
},
"dependencies": {
"animate.css": "^4.1.1",
"axios": "^0.18.0",
"crypto-js": "^4.0.0",
"echarts": "^4.2.0-rc.2",
"element-ui": "^2.7.2",
"file-saver": "^2.0.0-rc.3",
"html2canvas": "^1.0.0-rc.7",
"js-base64": "^3.6.0",
"jspdf": "^2.3.1",
"moment": "^2.22.2",
"qrcode.vue": "^1.6.1",
"qs": "^6.5.2",
"qs-stringify": "^1.1.0",
"swiper": "^5.4.5",
"video.js": "^7.11.4",
"vue": "^2.5.2",
"vue-awesome-swiper": "^4.1.1",
"vue-qr": "^1.5.2",
"vue-router": "^3.0.1",
"vuex": "^3.0.1",
"xlsx": "^0.14.0"
},
"devDependencies": {
"autoprefixer": "^7.1.2",
"babel-core": "^6.22.1",
"babel-helper-vue-jsx-merge-props": "^2.0.3",
"babel-loader": "^7.1.1",
"babel-plugin-syntax-jsx": "^6.18.0",
"babel-plugin-transform-runtime": "^6.22.0",
"babel-plugin-transform-vue-jsx": "^3.5.0",
"babel-preset-env": "^1.3.2",
"babel-preset-stage-2": "^6.22.0",
"chalk": "^2.0.1",
"copy-webpack-plugin": "^4.0.1",
"css-loader": "^0.28.11",
"extract-text-webpack-plugin": "^3.0.0",
"file-loader": "^1.1.11",
"friendly-errors-webpack-plugin": "^1.6.1",
"html-webpack-plugin": "^2.30.1",
"jquery": "^3.3.1",
"less": "^3.8.1",
"less-loader": "^4.1.0",
"node-notifier": "^5.1.2",
"optimize-css-assets-webpack-plugin": "^3.2.0",
"ora": "^1.2.0",
"portfinder": "^1.0.13",
"postcss-import": "^11.0.0",
"postcss-loader": "^2.0.8",
"postcss-url": "^7.2.1",
"rimraf": "^2.6.0",
"sass-resources-loader": "^2.1.1",
"semver": "^5.3.0",
"shelljs": "^0.7.6",
"style-loader": "^0.23.0",
"uglifyjs-webpack-plugin": "^1.1.1",
"url-loader": "^1.1.2",
"vue-loader": "^13.3.0",
"vue-style-loader": "^3.0.1",
"vue-template-compiler": "^2.5.2",
"webpack": "^3.6.0",
"webpack-bundle-analyzer": "^2.9.0",
"webpack-dev-server": "^2.9.1",
"webpack-merge": "^4.1.0"
},
"engines": {
"node": ">= 6.0.0",
"npm": ">= 3.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
]
}
{
"name": "hall",
"version": "1.0.0",
"description": "manage",
"author": "yuyan <yuyan@wisenergy.com.cn>",
"private": true,
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"start": "npm run dev",
"build": "node build/build.js"
},
"dependencies": {
"animate.css": "^4.1.1",
"axios": "^0.18.0",
"crypto-js": "^4.0.0",
"echarts": "^4.2.0-rc.2",
"element-ui": "^2.7.2",
"file-saver": "^2.0.0-rc.3",
"html2canvas": "^1.0.0-rc.7",
"js-base64": "^3.6.0",
"jspdf": "^2.3.1",
"moment": "^2.22.2",
"qrcode.vue": "^1.6.1",
"qs": "^6.5.2",
"qs-stringify": "^1.1.0",
"swiper": "^5.4.5",
"video.js": "^7.11.4",
"vue": "^2.5.2",
"vue-awesome-swiper": "^4.1.1",
"vue-qr": "^1.5.2",
"vue-router": "^3.0.1",
"vuex": "^3.0.1",
"xlsx": "^0.14.0"
},
"devDependencies": {
"autoprefixer": "^7.1.2",
"babel-core": "^6.22.1",
"babel-helper-vue-jsx-merge-props": "^2.0.3",
"babel-loader": "^7.1.1",
"babel-plugin-syntax-jsx": "^6.18.0",
"babel-plugin-transform-runtime": "^6.22.0",
"babel-plugin-transform-vue-jsx": "^3.5.0",
"babel-preset-env": "^1.3.2",
"babel-preset-stage-2": "^6.22.0",
"chalk": "^2.0.1",
"copy-webpack-plugin": "^4.0.1",
"css-loader": "^0.28.11",
"extract-text-webpack-plugin": "^3.0.0",
"file-loader": "^1.1.11",
"friendly-errors-webpack-plugin": "^1.6.1",
"html-webpack-plugin": "^2.30.1",
"jquery": "^3.3.1",
"less": "^3.8.1",
"less-loader": "^4.1.0",
"node-notifier": "^5.1.2",
"optimize-css-assets-webpack-plugin": "^3.2.0",
"ora": "^1.2.0",
"portfinder": "^1.0.13",
"postcss-import": "^11.0.0",
"postcss-loader": "^2.0.8",
"postcss-url": "^7.2.1",
"rimraf": "^2.6.0",
"sass-resources-loader": "^2.1.1",
"semver": "^5.3.0",
"shelljs": "^0.7.6",
"style-loader": "^0.23.0",
"uglifyjs-webpack-plugin": "^1.1.1",
"url-loader": "^1.1.2",
"vue-loader": "^13.3.0",
"vue-style-loader": "^3.0.1",
"vue-template-compiler": "^2.5.2",
"webpack": "^3.6.0",
"webpack-bundle-analyzer": "^2.9.0",
"webpack-dev-server": "^2.9.1",
"webpack-merge": "^4.1.0"
},
"engines": {
"node": ">= 6.0.0",
"npm": ">= 3.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
]
}
<template>
<el-dialog
class="custom-dialog"
custom-class="party-dialog"
title="上传新版安装包"
width="468px"
:visible.sync="formVisible"
:before-close="close"
>
<div class="dialog-content">
<el-form
:model="formItem"
class="party-form version-add"
ref="formItem"
label-position="top"
:rules="rules"
>
<el-form-item label="版本号:" prop="appVersion">
<el-input
maxlength="20"
v-model="formItem.appVersion"
clearable
placeholder="请输入版本号"
></el-input>
</el-form-item>
<el-form-item label="版本信息:" prop="versionInfo">
<el-input
maxlength="100"
type="textarea"
v-model="formItem.versionInfo"
></el-input>
</el-form-item>
<el-form-item label="更新内容:" prop="updateLog">
<el-input
maxlength="100"
type="textarea"
v-model="formItem.updateLog"
></el-input>
</el-form-item>
<el-upload
class="text-center"
drag
:action="uploadUrl"
:headers ="headers"
:on-success="handleAvatarSuccess"
:before-upload="handleBeforeUpload"
:file-list="fileList"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将安装包拖到此处,或<em>点击上传安装包</em>
</div>
<div class="el-upload__tip" slot="tip">只能上传apk文件</div>
</el-upload>
</el-form>
</div>
<div slot="footer" class="dialog-footer btn-group">
<el-button size="mini" @click="close">取 消</el-button>
<el-button size="mini" type="primary" @click="submitForm('formItem')">确定</el-button>
</div>
</el-dialog>
</template>
<script>
export default {
data() {
return {
uploadUrl:'http://111.203.232.175:8088/mall/file/upload/allType',
formVisible: false,
headers:{Authorization: localStorage.getItem('backToken')},
formItem: {},
fileList: [],
rules: {
appVersion: [
{ required: true, message: "请输入版本号", trigger: "blur" },
],
versionInfo: [
{ required: true, message: "请输入版本信息", trigger: "blur" },
],
updateLog: [
{ required: true, message: "请输入更新内容", trigger: "blur" },
],
},
};
},
methods: {
backFn() {
this.formVisible = true
this.formItem = {}
this.fileList = []
this.$nextTick(() => {
this.$refs.formItem.clearValidate()
});
},
// 关闭
close() {
this.formVisible = false;
for (let key in this.formItem) {
this.formItem[key] = null
}
this.$refs["formItem"].resetFields()
},
// 格式控制
handleBeforeUpload(file) {
if (file.type !== "application/vnd.android.package-archive") {
this.$message.error("只能上传apk文件")
return false
}
return true
},
// 上传数据操作
handleAvatarSuccess(res, file) {
if(res.resultCode==='200'){
this.formItem.apkUrl = res.data.url
}else{
this.$message.error(res.message)
}
},
// 保存编辑信息
submitForm() {
let _this = this
_this.$refs.formItem.validate((valid) => {
if (valid) {
if (!this.formItem.apkUrl) {
this.$message.info("请先选取文件!")
return false
}
let param = {
appVersion: this.formItem.appVersion,
versionInfo: this.formItem.versionInfo,
updateLog: this.formItem.updateLog,
apkUrl: this.formItem.apkUrl,
}
_this
.$https(
{
url: "tAppVersion/save",
method: "post",
authType: this.backToken,
},
_this.$qs.stringify(param)
)
.then(
(res) => {
if (res.data.resultCode === "200") {
_this.$message.success(res.data.message)
_this.formVisible = false
_this.$emit("refreshFn")
} else {
_this.$message.error(res.data.message)
}
},
(error) => {
console.log(error)
}
)
}
})
},
},
};
</script>
<style lang="less">
.version-add {
.el-upload-dragger {
height: 120px;
.el-icon-upload {
margin-top: 10px;
}
}
.text-center {
text-align: center;
}
}
</style>
<template>
<el-dialog
class="custom-dialog"
custom-class="party-dialog"
title="上传新版安装包"
width="468px"
:visible.sync="formVisible"
:before-close="close"
>
<div class="dialog-content">
<el-form
:model="formItem"
class="party-form version-add"
ref="formItem"
label-position="top"
:rules="rules"
>
<el-form-item label="版本号:" prop="appVersion">
<el-input
maxlength="20"
v-model="formItem.appVersion"
clearable
placeholder="请输入版本号"
></el-input>
</el-form-item>
<el-form-item label="版本信息:" prop="versionInfo">
<el-input
maxlength="100"
type="textarea"
v-model="formItem.versionInfo"
></el-input>
</el-form-item>
<el-form-item label="更新内容:" prop="updateLog">
<el-input
maxlength="100"
type="textarea"
v-model="formItem.updateLog"
></el-input>
</el-form-item>
<el-upload
class="text-center"
drag
:action="uploadUrl"
:headers ="headers"
:on-success="handleAvatarSuccess"
:before-upload="handleBeforeUpload"
:file-list="fileList"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将安装包拖到此处,或<em>点击上传安装包</em>
</div>
<div class="el-upload__tip" slot="tip">只能上传apk文件</div>
</el-upload>
</el-form>
</div>
<div slot="footer" class="dialog-footer btn-group">
<el-button size="mini" @click="close">取 消</el-button>
<el-button size="mini" type="primary" @click="submitForm('formItem')">确定</el-button>
</div>
</el-dialog>
</template>
<script>
export default {
data() {
return {
uploadUrl:'http://111.203.232.175:8088/mall/file/upload/allType',
formVisible: false,
headers:{Authorization: localStorage.getItem('backToken')},
formItem: {},
fileList: [],
rules: {
appVersion: [
{ required: true, message: "请输入版本号", trigger: "blur" },
],
versionInfo: [
{ required: true, message: "请输入版本信息", trigger: "blur" },
],
updateLog: [
{ required: true, message: "请输入更新内容", trigger: "blur" },
],
},
};
},
methods: {
backFn() {
this.formVisible = true
this.formItem = {}
this.fileList = []
this.$nextTick(() => {
this.$refs.formItem.clearValidate()
});
},
// 关闭
close() {
this.formVisible = false;
for (let key in this.formItem) {
this.formItem[key] = null
}
this.$refs["formItem"].resetFields()
},
// 格式控制
handleBeforeUpload(file) {
if (file.type !== "application/vnd.android.package-archive") {
this.$message.error("只能上传apk文件")
return false
}
return true
},
// 上传数据操作
handleAvatarSuccess(res, file) {
if(res.resultCode==='200'){
this.formItem.apkUrl = res.data.url
}else{
this.$message.error(res.message)
}
},
// 保存编辑信息
submitForm() {
let _this = this
_this.$refs.formItem.validate((valid) => {
if (valid) {
if (!this.formItem.apkUrl) {
this.$message.info("请先选取文件!")
return false
}
let param = {
appVersion: this.formItem.appVersion,
versionInfo: this.formItem.versionInfo,
updateLog: this.formItem.updateLog,
apkUrl: this.formItem.apkUrl,
}
_this
.$https(
{
url: "tAppVersion/save",
method: "post",
authType: this.backToken,
},
_this.$qs.stringify(param)
)
.then(
(res) => {
if (res.data.resultCode === "200") {
_this.$message.success(res.data.message)
_this.formVisible = false
_this.$emit("refreshFn")
} else {
_this.$message.error(res.data.message)
}
},
(error) => {
console.log(error)
}
)
}
})
},
},
};
</script>
<style lang="less">
.version-add {
.el-upload-dragger {
height: 120px;
.el-icon-upload {
margin-top: 10px;
}
}
.text-center {
text-align: center;
}
}
</style>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<template>
<div>
<el-upload
accept=".jpg,.jpeg,.png.JPG,.JPEG,.PNG"
:class="{disabled:uploadDisabled}"
action="http://111.203.232.175:8088/mall/file/image/upload"
list-type="picture-card"
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove"
:on-success="handleAvatarSuccess"
:headers="headers"
:file-list="fileList"
:limit="1"
:multiple ="false"
>
<i class="el-icon-plus"></i>
<div slot="tip" class="el-upload__tip color_red">只能上传.jpg/.jpeg/.png文件</div>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt />
</el-dialog>
</div>
</template>
<script>
export default {
props:{
fileList:{
type:Array,
default:[]
},
},
data() {
return {
dialogImageUrl: "",
dialogVisible: false,
imageUrl:""
};
},
computed: {
headers() {
return {
Authorization: localStorage.getItem("backToken") || "",
};
},
uploadDisabled:function() {
return (this.fileList.length>0)||this.imageUrl
},
},
methods: {
// 图片上传成功的返回值
handleAvatarSuccess(res, file) {
if (res.resultCode == 200) {
this.$emit("imgUrl", res.data.url);
this.imageUrl = res.data.url;
} else {
this.$message.error(res.message);
}
},
handleRemove(file, fileList) {
this.$emit("imgUrl", "");
this.imageUrl=""
this.fileList=[]
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
showImg(cover) {
let file = {
name: "",
url: cover,
};
this.fileList = [file]
},
},
};
</script>
<style lang="less">
.avatar {
width: 100%;
height: 100%;
}
.color_red{
color:red;
}
.disabled .el-upload--picture-card {
display: none;
}
</style>
<template>
<div>
<el-upload
accept=".jpg,.jpeg,.png.JPG,.JPEG,.PNG"
:class="{disabled:uploadDisabled}"
action="http://111.203.232.175:8088/mall/file/image/upload"
list-type="picture-card"
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove"
:on-success="handleAvatarSuccess"
:headers="headers"
:file-list="fileList"
:limit="1"
:multiple ="false"
>
<i class="el-icon-plus"></i>
<div slot="tip" class="el-upload__tip color_red">只能上传.jpg/.jpeg/.png文件</div>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt />
</el-dialog>
</div>
</template>
<script>
export default {
props:{
fileList:{
type:Array,
default:[]
},
},
data() {
return {
dialogImageUrl: "",
dialogVisible: false,
imageUrl:""
};
},
computed: {
headers() {
return {
Authorization: localStorage.getItem("backToken") || "",
};
},
uploadDisabled:function() {
return (this.fileList.length>0)||this.imageUrl
},
},
methods: {
// 图片上传成功的返回值
handleAvatarSuccess(res, file) {
if (res.resultCode == 200) {
this.$emit("imgUrl", res.data.url);
this.imageUrl = res.data.url;
} else {
this.$message.error(res.message);
}
},
handleRemove(file, fileList) {
this.$emit("imgUrl", "");
this.imageUrl=""
this.fileList=[]
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
showImg(cover) {
let file = {
name: "",
url: cover,
};
this.fileList = [file]
},
},
};
</script>
<style lang="less">
.avatar {
width: 100%;
height: 100%;
}
.color_red{
color:red;
}
.disabled .el-upload--picture-card {
display: none;
}
</style>
<template>
<div>
<el-upload
accept=".jpg,.jpeg,.png,.JPG,.JPEG,.PBG"
:class="{disabled:uploadDisabled}"
action="http://111.203.232.175:8088/mall/file/image/upload"
list-type="picture-card"
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove"
:on-success="handleAvatarSuccess"
:headers="headers"
:file-list="fileList"
:limit="1"
:multiple ="false"
>
<i class="el-icon-plus"></i>
<div slot="tip" class="el-upload__tip color_red">只能上传.jpg/.jpeg/.png文件</div>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt />
</el-dialog>
</div>
</template>
<script>
export default {
props:{
fileList:{
type:Array,
default:[
{
name: "",
url: "",
},
]
},
},
data() {
return {
dialogImageUrl: "",
dialogVisible: false,
imageUrl:""
};
},
computed: {
headers() {
// return { 'token': this.backToken }
return {'Authorization':localStorage.getItem('backToken')}
},
uploadDisabled:function() {
return (this.fileList.length>0)||this.imageUrl
},
},
methods: {
// 图片上传成功的返回值
handleAvatarSuccess(res, file) {
// this.$emit('qrcodeUrl', res.data.url)
if (res.resultCode == 200) {
this.$emit('qrcodeUrl', res.data.url)
this.imageUrl = res.data.url;
} else {
this.$message.error(res.message);
}
},
handleRemove(file, fileList) {
console.log(file, fileList);
this.$emit("qrcodeUrl", "");
this.imageUrl=""
this.fileList=[]
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
}
}
};
</script>
<style>
.color_red{
color:red;
}
.disabled .el-upload--picture-card {
display: none;
}
</style>
<template>
<div>
<el-upload
accept=".jpg,.jpeg,.png,.JPG,.JPEG,.PBG"
:class="{disabled:uploadDisabled}"
action="http://111.203.232.175:8088/mall/file/image/upload"
list-type="picture-card"
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove"
:on-success="handleAvatarSuccess"
:headers="headers"
:file-list="fileList"
:limit="1"
:multiple ="false"
>
<i class="el-icon-plus"></i>
<div slot="tip" class="el-upload__tip color_red">只能上传.jpg/.jpeg/.png文件</div>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt />
</el-dialog>
</div>
</template>
<script>
export default {
props:{
fileList:{
type:Array,
default:[
{
name: "",
url: "",
},
]
},
},
data() {
return {
dialogImageUrl: "",
dialogVisible: false,
imageUrl:""
};
},
computed: {
headers() {
// return { 'token': this.backToken }
return {'Authorization':localStorage.getItem('backToken')}
},
uploadDisabled:function() {
return (this.fileList.length>0)||this.imageUrl
},
},
methods: {
// 图片上传成功的返回值
handleAvatarSuccess(res, file) {
// this.$emit('qrcodeUrl', res.data.url)
if (res.resultCode == 200) {
this.$emit('qrcodeUrl', res.data.url)
this.imageUrl = res.data.url;
} else {
this.$message.error(res.message);
}
},
handleRemove(file, fileList) {
console.log(file, fileList);
this.$emit("qrcodeUrl", "");
this.imageUrl=""
this.fileList=[]
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
}
}
};
</script>
<style>
.color_red{
color:red;
}
.disabled .el-upload--picture-card {
display: none;
}
</style>
This diff is collapsed.
{
"baseUrl_backUp": "/mall/",
"baseUrl": "/mall/",
"directory": "/plat"
}
{
"baseUrl_backUp": "/mall/",
"baseUrl": "/mall/",
"directory": "/plat"
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment