You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
277 lines
8.1 KiB
277 lines
8.1 KiB
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=no,
|
|
width=device-width,initial-scale=1.0" />
|
|
<title>模块管理</title>
|
|
<link rel="shortcut icon" href="../../image/oss/iot/favicon2.ico" type="image/x-icon">
|
|
|
|
<link rel="stylesheet" href="lib/element-ui/index.css">
|
|
<script src="lib/element-ui/vue.min.js"></script>
|
|
<script src="lib/element-ui/index.js"></script>
|
|
<script src="../common/util.js"></script>
|
|
|
|
<script type="text/javascript" src="./lib/jquery/jquery.min.js"></script>
|
|
<script type="text/javascript" src="../../lib/webUploader/webuploader.min.js"></script>
|
|
<style type="text/css">
|
|
.webuploader-element-invisible{
|
|
display: none;
|
|
}
|
|
.deleteUploadImg {
|
|
position: absolute;
|
|
display: none;
|
|
right: 5px;
|
|
top: 5px;
|
|
height: 10px;
|
|
width: 10px;
|
|
cursor: pointer;
|
|
}
|
|
.img-container{
|
|
display: inline-block;position:relative;
|
|
}
|
|
.img-container:HOVER img {
|
|
display: inline;
|
|
}
|
|
body,html{
|
|
background: #fff ;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div id="app" >
|
|
<el-row style="padding:20px;">
|
|
<el-col :span="12" style="padding:20px;border:1px solid #d9d9d9;height:600px;overflow:auto;" >
|
|
<el-collapse v-model="activeNameImgKun" accordion >
|
|
<el-collapse-item v-for="(item,index) in visualPartList" :title="item.name" :name="index">
|
|
<div class="img-container" v-for="(sitem,index) in imgObjList" v-if="item.code ==sitem.moudle_type ">
|
|
<img style="width: 60px;height:60px;margin-right:5px;" :src="sitem.dis_img" />
|
|
<img :id="sitem.id" style="width: 10px;height: 10px;" src="./image/delete.png" class="deleteUploadImg" >
|
|
</div>
|
|
|
|
</el-collapse-item>
|
|
</el-collapse>
|
|
</el-col>
|
|
<el-col :span="11" style="padding: 20px; ">
|
|
<el-select v-model="code" placeholder="请选择">
|
|
<el-option
|
|
v-for="item in visualPartList"
|
|
:key="item.code"
|
|
:label="item.name"
|
|
:value="item.code">
|
|
</el-option>
|
|
</el-select>
|
|
|
|
<div class="uploadBtns" style="margin-top: 20px;">
|
|
<div class="upload_img mr10" id="upload_img" >
|
|
<button tag="" class="el-button el-button--primary" >上传图片</button>
|
|
</div>
|
|
</div>
|
|
</el-col>
|
|
</el-row>
|
|
|
|
</div>
|
|
</body>
|
|
<script type="text/javascript">
|
|
var app = new Vue({
|
|
el:"#app",
|
|
data:function(){
|
|
return {
|
|
visualPartList: [] , // 虚拟组件
|
|
imgObjList: [] , // 组件图片列表
|
|
activeNameImgKun: [0] , // 图库系统
|
|
code: '' , // code值
|
|
uploadImgs:[],
|
|
initUpload:'',
|
|
uploadImgCount:0,
|
|
};
|
|
},
|
|
methods:{
|
|
initVisualPart(){
|
|
// 获取组件类型
|
|
var that = this;
|
|
commonAjax('GET', baseurl+'/service/dictionary/130' , "" ,function (res) {
|
|
if(isOK(res)){
|
|
that.visualPartList = res.data ;
|
|
}
|
|
}) ;
|
|
},
|
|
handleChange(){
|
|
var that = this;
|
|
commonAjax('POST',baseurl+'/service/page/moudle/visual?paged=1&pageSize=1999' , {} ,
|
|
function (e) {
|
|
if(isOK(e)){
|
|
that.imgObjList = e.data.data ;
|
|
}
|
|
}) ;
|
|
},
|
|
},created(){
|
|
|
|
},mounted() {
|
|
this.initVisualPart();
|
|
this.handleChange();
|
|
initImgUpload("upload_img");
|
|
}
|
|
})
|
|
|
|
function saveImg(url){
|
|
if(util.isEmpty(app.code)){
|
|
app.$message.error("请选择上传目录");
|
|
return ;
|
|
}
|
|
var data = {
|
|
name:'上传图片',
|
|
dis_img:url,
|
|
moudle_type: app.code
|
|
}
|
|
commonAjax("POST",baseurl+"/service/moudle/visual", data,function(e){
|
|
if(e.status == 2){
|
|
app.imgObjList.push(e.data);
|
|
app.$message({
|
|
message: '成功',
|
|
type:'success'
|
|
});
|
|
}else{
|
|
app.$message.error(e.statusMsg);
|
|
}
|
|
});
|
|
}
|
|
|
|
$(document).delegate(".deleteUploadImg","click",function(event){
|
|
var that = $(this) ;
|
|
commonAjax('DELETE', baseurl+'/service/moudle/visual.json?id='+ $(this).attr("id") , '',function(res){
|
|
if(res.status == 2){
|
|
// 删除成功
|
|
that.parent().remove();
|
|
}
|
|
} );
|
|
});
|
|
|
|
function initImgUpload(id){
|
|
//上传模板
|
|
UploadInit( baseurl + '/service/upload.json' , {category:"img"} ,function(file,data){
|
|
if(data.status==2){
|
|
var url = "/res"+data.data;
|
|
saveImg(url);
|
|
}
|
|
}, id ,id,"110px", "35px") ;
|
|
}
|
|
|
|
/**
|
|
* @Func 文件上傳功能,目前只支持單個
|
|
* @param imgUrl domain
|
|
* @param user_id 用戶id
|
|
* @param func 成功之後的回調
|
|
* @Param id 文件选择id
|
|
*/
|
|
function UploadInit(imgFindUrl, userInfo ,func,id,domId,thumbnailWidth, thumbnailHeight,accept,acceptconfig){
|
|
var $ = jQuery,
|
|
state = 'pending',
|
|
uploader;
|
|
// 增加类型修改,可以传入类型
|
|
if(accept == undefined){
|
|
acceptconfig = "" ;
|
|
}else{
|
|
acceptconfig = getVal( acceptconfig, { // 默认值兼容之前
|
|
title: 'Images',
|
|
extensions: 'gif,jpg,jpeg,bmp,png,pdf',
|
|
mimeTypes: 'image/jpg,image/jpeg,image/png'
|
|
});
|
|
}
|
|
|
|
uploader = WebUploader.create({
|
|
// 自动上传
|
|
auto: true,
|
|
// 不压缩image
|
|
resize: false,
|
|
//不压缩图片
|
|
compress:false,
|
|
// swf文件路径
|
|
swf: baseurl + '/lib/webUploader/Uploader.swf',
|
|
// 文件接收服务端。
|
|
server: imgFindUrl,
|
|
// 选择文件的按钮。可选。
|
|
// 内部根据当前运行是创建,可能是input元素,也可能是flash.
|
|
pick: '#'+id ,
|
|
duplicate: true ,
|
|
fileSingleSizeLimit: 5*1024*1024,
|
|
// 只允许选择文件,可选。
|
|
accept:acceptconfig
|
|
});
|
|
|
|
uploader.on("error",function (type){
|
|
if (type=="Q_TYPE_DENIED"){
|
|
if(typeof(layer)!="undefined"){
|
|
showTip("请上传正确的文件格式");
|
|
}else{
|
|
alert("请上传正确的文件格式");
|
|
}
|
|
}else if(type=="F_EXCEED_SIZE"){
|
|
if(typeof(layer)!="undefined"){
|
|
showTip("文件大小不能超过5M");
|
|
}else{
|
|
alert("文件大小不能超过5M");
|
|
}
|
|
}
|
|
});
|
|
// 当有文件添加进来的时候
|
|
uploader.on('fileQueued', function(file) {
|
|
$("#"+domId).css("width","0%");
|
|
$("#"+domId).attr("ids","");
|
|
$("#"+domId).css("display","inherit");
|
|
uploader.options.formData= gdv(userInfo , {}) ;
|
|
uploader.makeThumb( file, function( error, src ) {
|
|
$("#back_"+domId).css("background","url("+src+")");
|
|
|
|
}, thumbnailWidth, thumbnailHeight );
|
|
});
|
|
// 文件上传过程中创建进度条实时显示。
|
|
uploader.on('uploadProgress', function(file, percentage) {
|
|
$("#all_"+domId).text(parseInt(percentage*100)+"%");
|
|
$("#"+domId).css("width",parseInt(100-percentage*100)+"%");
|
|
});
|
|
uploader.on('uploadSuccess', func);
|
|
uploader.on('uploadError', function(file) {
|
|
console.log("文件上传出错");
|
|
});
|
|
uploader.on('uploadComplete', function(file) {
|
|
});
|
|
uploader.on('all', function(type) {
|
|
});
|
|
};
|
|
|
|
function commonAjax(method,url, data,sucessCallBack, errorCallBack) {
|
|
var config = {
|
|
type : method ,
|
|
url : url,
|
|
contentType : "application/json",
|
|
dataType : "json",
|
|
async : true,
|
|
success : function(data){
|
|
if(data.status == 20000){
|
|
return;
|
|
}else{
|
|
sucessCallBack(data);
|
|
}
|
|
},
|
|
error : errorCallBack
|
|
};
|
|
if(typeof(ucode) != "undefined"){
|
|
config.headers={ 'USER-KEY' :ucode };
|
|
}
|
|
if(method.toUpperCase() != 'GET' && method.toUpperCase() != 'DELETE' ){
|
|
config.data = JSON.stringify(data);
|
|
}
|
|
$.ajax(config)
|
|
};
|
|
|
|
var isOk= isOK ;
|
|
function isOK(e){
|
|
if(e.status == 2 ){
|
|
return true ;
|
|
}else{
|
|
return false ;
|
|
}
|
|
}
|
|
</script>
|
|
</html>
|
|
|