Browse Source

磁贴添加小程序类型

ningsy 5 years ago
parent
commit
8c533127f9

+ 28 - 0
suishenbang-wxportal/suishenbang-wxportal-common/src/main/java/com/dgtly/wxportal/domain/WxMagnet.java

@@ -42,6 +42,18 @@ public class WxMagnet extends BaseEntity
     /** 背景图片 */
     private String bgUrl;
 
+    /**
+     * 磁贴应用类型
+     * 0:链接应用
+     * 1:小程序应用
+     */
+    private String magnetType;
+
+    /**
+     * 小程序二维码url
+     */
+    private String appletQrUrl;
+
 
     public Long getMagnetId()
     {
@@ -120,7 +132,21 @@ public class WxMagnet extends BaseEntity
         this.bgUrl = bgUrl;
     }
 
+    public String getMagnetType() {
+        return magnetType;
+    }
+
+    public void setMagnetType(String magnetType) {
+        this.magnetType = magnetType;
+    }
+
+    public String getAppletQrUrl() {
+        return appletQrUrl;
+    }
 
+    public void setAppletQrUrl(String appletQrUrl) {
+        this.appletQrUrl = appletQrUrl;
+    }
 
     @Override
     public String toString() {
@@ -137,6 +163,8 @@ public class WxMagnet extends BaseEntity
             .append("updateBy", getUpdateBy())
             .append("updateTime", getUpdateTime())
             .append("remark", getRemark())
+            .append("magnetType", getMagnetType())
+            .append("appletQrUrl", getAppletQrUrl())
             .toString();
     }
 

+ 15 - 6
suishenbang-wxportal/suishenbang-wxportal-common/src/main/resources/mapper/wxportal/WxMagnetMapper.xml

@@ -4,7 +4,7 @@
 		"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.dgtly.wxportal.mapper.WxMagnetMapper">
 
-	<resultMap type="WxMagnet" id="WxMagnetResult">
+	<resultMap type="com.dgtly.wxportal.domain.WxMagnet" id="WxMagnetResult">
 		<id     property="magnetId"       column="magnet_id"        />
 		<result property="magnetName"     column="magnet_name"      />
 		<result property="orderNum"       column="order_num"      />
@@ -17,17 +17,20 @@
 		<result property="updateTime"     column="update_time"    />
 		<result property="updateBy"       column="update_by"      />
 		<result property="remark"         column="remark"         />
+        <result property="magnetType"     column="magnet_type"         />
+        <result property="appletQrUrl"    column="applet_qr_url"         />
+
 	</resultMap>
 
 	<sql id="selectMagnetVo">
-        select magnet_id, magnet_name, order_num, url,  visible, magnet_size, bg_url ,create_by, create_time
+        select magnet_id, magnet_name, order_num, url,  visible, magnet_size, bg_url ,remark, magnet_type, applet_qr_url, create_by, create_time
 		from wx_magnet
     </sql>
 
 
     <select id="selectMagnetList" parameterType="WxMagnet" resultMap="WxMagnetResult">
         select distinct m.magnet_id,  m.magnet_name, m.url, m.visible, m.magnet_size
-        , m.bg_url, m.order_num, m.create_time
+        , m.bg_url, m.order_num, m.create_time, m.magnet_type, m.applet_qr_url
         from wx_magnet m
         <where>
             <if test="magnetName != null and magnetName != ''">
@@ -63,7 +66,7 @@
         where magnet_name=#{magnetName}
     </select>
 
-    <insert id="insertMagnet" parameterType="WxMagnet">
+    <insert id="insertMagnet" parameterType="com.dgtly.wxportal.domain.WxMagnet">
         insert into wx_magnet(
         <if test="magnetId != null and magnetId != 0">magnet_id,</if>
         <if test="magnetName != null and magnetName != ''">magnet_name,</if>
@@ -73,6 +76,8 @@
         <if test="magnetSize !=null and magnetSize != ''">magnet_size,</if>
         <if test="bgUrl != null and bgUrl != ''">bg_url,</if>
         <if test="remark != null and remark != ''">remark,</if>
+        <if test="magnetType != null and magnetType != ''">magnet_type,</if>
+        <if test="appletQrUrl != null and appletQrUrl != ''">applet_qr_url,</if>
         <if test="createBy != null and createBy != ''">create_by,</if>
         create_time
         )values(
@@ -84,12 +89,14 @@
         <if test="magnetSize !=null and magnetSize != ''">#{magnetSize},</if>
         <if test="bgUrl != null and bgUrl != ''">#{bgUrl},</if>
         <if test="remark != null and remark != ''">#{remark},</if>
+        <if test="magnetType != null and magnetType != ''">#{magnetType},</if>
+        <if test="appletQrUrl != null and appletQrUrl != ''">#{appletQrUrl},</if>
         <if test="createBy != null and createBy != ''">#{createBy},</if>
         sysdate()
         )
     </insert>
 
-    <update id="updateMagnet" parameterType="WxMagnet">
+    <update id="updateMagnet" parameterType="com.dgtly.wxportal.domain.WxMagnet">
         update wx_magnet
         <set>
             <if test="magnetName != null and magnetName != ''">magnet_name = #{magnetName},</if>
@@ -99,6 +106,8 @@
             <if test="magnetSize !=null">magnet_size = #{magnetSize},</if>
             <if test="bgUrl !=null and bgUrl != ''">bg_url = #{bgUrl},</if>
             <if test="remark != null and remark != ''">remark = #{remark},</if>
+            <if test="magnetType != null and magnetType != ''">magnet_type = #{magnetType},</if>
+            <if test="appletQrUrl != null">applet_qr_url = #{appletQrUrl},</if>
             <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
             update_time = sysdate()
         </set>
@@ -112,7 +121,7 @@
 
     <select id="selectMagnetAllByUserId"  resultMap="WxMagnetResult">
       select distinct m.magnet_id,  m.magnet_name, m.url, m.visible, m.magnet_size
-            , m.bg_url, m.order_num, m.create_time
+            , m.bg_url, m.order_num, m.create_time, m.magnet_type, m.applet_qr_url
 		from wx_magnet m
          left join wx_role_magnet rm on m.magnet_id = rm.magnet_id
          left join sys_user_role ur on rm.role_id = ur.role_id

+ 97 - 19
suishenbang-wxportal/suishenbang-wxportal-manager/src/main/resources/templates/wxportal/magnet/add.html

@@ -81,6 +81,16 @@
 <body class="white-bg">
 	<div class="wrapper wrapper-content animated fadeInRight ibox-content" id="div1">
 		<form class="form-horizontal m" id="form-magnet-add">
+			<div class="form-group">
+				<label class="col-sm-3 control-label"><span style="color: red; ">*</span>磁贴应用类型:</label>
+				<div class="col-sm-8">
+					<select name="magnetType" id="sel_magnetType" class="form-control m-b"
+							th:with="type=${@dict.getType('sys_magnet_type')}"
+							onchange="javascript:magnetTypeChange()">
+						<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
+					</select>
+				</div>
+			</div>
 
 			<div class="form-group">
 				<label class="col-sm-3 control-label"><span style="color: red; ">*</span>磁贴名称:</label>
@@ -89,35 +99,44 @@
 				</div>
 			</div>
 			<div class="form-group">
-				<label class="col-sm-3 control-label"><span style="color: red; ">*</span>请求地址:</label>
-				<div class="col-sm-8">
-					<input id="url" name="url" class="form-control" type="text" required>
+				<label class="col-sm-3 control-label"><span style="color: red; ">*</span>显示排序:</label>
+				<div class="col-sm-8" >
+					<input class="form-control" type="text" name="orderNum" required>
 				</div>
 			</div>
-
 			<div class="form-group">
-				<label class="col-sm-3 control-label">磁贴尺寸:</label>
+				<label class="col-sm-3 control-label"><span style="color: red; ">*</span>磁贴尺寸:</label>
 				<div class="col-sm-8">
-                   <select name="magnetSize" id="sel_magnetSize" class="form-control m-b" th:with="type=${@dict.getType('wx_magnet_size')}" onchange="javascript:sizeChange()">
-                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
-                </select>
-                </div>
+					<select name="magnetSize" id="sel_magnetSize" class="form-control m-b" th:with="type=${@dict.getType('wx_magnet_size')}" onchange="javascript:sizeChange()">
+						<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
+					</select>
+				</div>
 			</div>
-			<div class="form-group">
-				<label class="col-sm-3 control-label"><span style="color: red; ">*</span>显示排序:</label>
-				<div class="col-sm-8" >
-					<input class="form-control" type="text" name="orderNum" required>
+			<div class="form-group" style="display: none;">
+				<label class="col-sm-3 control-label"><span style="color: red; ">*</span>请求地址:</label>
+				<div class="col-sm-8">
+					<input id="url" name="url" class="form-control" type="text" required>
 				</div>
 			</div>
 			<div class="form-group">
 				<label class="col-sm-3 control-label">背景图片:</label>
 				<div class="col-sm-8">
                     <input id="input_bgUrl" name="bgUrl" type="hidden"/>
-                    <div class="thumbnail slideshow_span" id="div-bgUrl" onclick="javascript:bgUpload()">
+                    <div class="thumbnail slideshow_span" id="div-bgUrl" onclick="javascript:bgUpload('bg')">
                         <i class="fa fa-plus"></i>
                     </div>
 				</div>
 			</div>
+			<div class="form-group" style="display: none">
+				<label class="col-sm-3 control-label">小程序二维码:</label>
+				<div class="col-sm-8">
+					<input id="input_appletQrUrl" name="appletQrUrl" type="hidden"/>
+					<div class="thumbnail slideshow_span" id="div-appletQrUrl" onclick="javascript:bgUpload('qr')">
+						<i class="fa fa-plus"></i>
+					</div>
+				</div>
+			</div>
+
 			<div class="form-group">
 				<label class="col-sm-3 control-label">菜单状态:</label>
 				<div class="col-sm-8">
@@ -147,7 +166,8 @@
                 <a href="javascript:void(0)" class="upload-img"> <label for="avatar">选择图片</label> </a>
                 <input type="file" class="" name="avatar" id="avatar" accept="image/*"/>
             </div>
-            <input type="button"  onclick="upBg()" class="btn-info Btnsty_peyton"  value="上传" />
+			<input type="button" id="submitbuttonBg" onclick="upBg()" class="btn-info Btnsty_peyton"  value="上传" />
+            <input type="button" id="submitbuttonQr" onclick="upQr()" class="btn-info Btnsty_peyton"  value="上传" />
             <input type="button"  onclick="back()" class="btn-info Btnsty_peyton "  value="返回" />
         </div>
 
@@ -158,6 +178,7 @@
     var prefix = ctx + "wxportal/magnet";
     var cropper;
     var size = "S";
+    var magnet_type = "0";
     var options = {
         thumbBox: '.thumbBox_'+size,
         spinner: '.spinner',
@@ -186,9 +207,12 @@
                 orderNum:{
                     digits:true
                 },
-                url:{
-                    required:true
-                },
+				url:{
+					required:true
+				},
+				magnetType:{
+					required:true
+				},
             },
             messages: {
                 "magnetName": {
@@ -240,7 +264,14 @@
 
 
     /*上传背景图片*/
-    function bgUpload() {
+    function bgUpload(value) {
+		if(value == 'bg'){
+			$("#submitbuttonQr").hide();
+			$("#submitbuttonBg").show();
+		} else if (value == 'qr'){
+			$("#submitbuttonBg").hide();
+			$("#submitbuttonQr").show();
+		}
         $("#div1").hide();
         $("#div2").show();
         var imgUrl =$("#input_bgUrl").val();
@@ -282,6 +313,31 @@
             }
         })
     }
+	function upQr() {
+		var img = cropper.getBlob();
+		var formdata = new FormData();
+		formdata.append("file", img);
+		$.ajax({
+			url: ctx + "common/upload",
+			data: formdata,
+			type: "post",
+			processData: false,
+			contentType: false,
+			success: function(result) {
+				if(result.code==0){
+					$("#input_appletQrUrl").val(result.data.fileName);
+					$("#div-appletQrUrl").html("<img src='"+result.data.url+"' style='width;100%;height:100%;'>");
+					$("#div1").show();
+					$("#div2").hide();
+				}else{
+					$("#div1").show();
+					$("#div2").hide();
+					$.modal.alertWarning(result.msg);
+				}
+
+			}
+		})
+	}
     function sizeChange(){
         size = $("#sel_magnetSize").val();
         $("#div-bgUrl").removeClass("bg-sm");
@@ -307,6 +363,28 @@
         }
     }
 
+	function magnetTypeChange(){
+		magnet_type = $("#sel_magnetType").val();
+		var $appletQrUrl = $("#input_appletQrUrl").parents(".form-group");
+
+		var $url = $("#url").parents(".form-group");
+		if(magnet_type == "0"){
+			$appletQrUrl.attr('disabled', 'disabled');
+			$appletQrUrl.hide();
+			$("#input_appletQrUrl").val("");
+
+			$url.removeAttr('disabled');
+			$url.show();
+		}else if(magnet_type == "1"){
+			$("#div-appletQrUrl").addClass("bg-sm");
+			$("#imageBox").addClass("imageBox imageBox_S");
+			$("#thumbBox").addClass("thumbBox_S");
+			$appletQrUrl.removeAttr('disabled');
+			$appletQrUrl.show();
+			$url.attr('disabled', 'disabled');
+			$url.hide();
+		}
+	}
 
     </script>
 </body>

+ 106 - 17
suishenbang-wxportal/suishenbang-wxportal-manager/src/main/resources/templates/wxportal/magnet/edit.html

@@ -82,6 +82,17 @@
 	<div class="wrapper wrapper-content animated fadeInRight ibox-content" id="div1">
         <form class="form-horizontal m" id="form-magnet-edit"  th:object="${wxMagnet}">
             <input type="hidden" name="magnetId" th:field="*{magnetId}">
+
+            <div class="form-group">
+                <label class="col-sm-3 control-label"><span style="color: red; ">*</span>磁贴应用类型:</label>
+                <div class="col-sm-8">
+                    <select name="magnetType" id="sel_magnetType" class="form-control m-b"
+                            th:with="type=${@dict.getType('sys_magnet_type')}"
+                            onchange="javascript:magnetTypeChange()">
+                        <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{magnetType}"></option>
+                    </select>
+                </div>
+            </div>
             <div class="form-group">
                 <label class="col-sm-3 control-label"><span style="color: red; ">*</span>磁贴名称:</label>
                 <div class="col-sm-8">
@@ -89,14 +100,13 @@
                 </div>
             </div>
             <div class="form-group">
-                <label class="col-sm-3 control-label"><span style="color: red; ">*</span>请求地址:</label>
-                <div class="col-sm-8">
-                    <input id="url" name="url" class="form-control" type="text" th:field="*{url}"  required>
+                <label class="col-sm-3 control-label"><span style="color: red; ">*</span>显示排序:</label>
+                <div class="col-sm-8" >
+                    <input class="form-control" type="text" name="orderNum" th:field="*{orderNum}" required>
                 </div>
             </div>
-
             <div class="form-group">
-                <label class="col-sm-3 control-label">磁贴尺寸:</label>
+                <label class="col-sm-3 control-label"><span style="color: red; ">*</span>磁贴尺寸:</label>
                 <div class="col-sm-8">
                     <select name="magnetSize" id="sel_magnetSize" class="form-control m-b"
                             th:with="type=${@dict.getType('wx_magnet_size')}" onchange="javascript:sizeChange()">
@@ -104,21 +114,32 @@
                     </select>
                 </div>
             </div>
-            <div class="form-group">
-                <label class="col-sm-3 control-label"><span style="color: red; ">*</span>显示排序:</label>
-                <div class="col-sm-8" >
-                    <input class="form-control" type="text" name="orderNum" th:field="*{orderNum}" required>
+            <div class="form-group" style="display: none;">
+                <label class="col-sm-3 control-label"><span style="color: red; ">*</span>请求地址:</label>
+                <div class="col-sm-8">
+                    <input id="url" name="url" class="form-control" type="text" th:field="*{url}"  required>
                 </div>
             </div>
             <div class="form-group">
                 <label class="col-sm-3 control-label">背景图片:</label>
                 <div class="col-sm-8">
                     <input id="input_bgUrl" name="bgUrl" th:field="*{bgUrl}" type="hidden"/>
-                    <div class="thumbnail slideshow_span" id="div-bgUrl" onclick="javascript:bgUpload()">
-                        <img th:src="@{*{bgUrl}}" style="width;100%;height:100%;">
+                    <div class="thumbnail slideshow_span" id="div-bgUrl" onclick="javascript:bgUpload('bg')">
+                        <img th:src="@{*{bgUrl}}" style="width:100%;height:100%;">
+                    </div>
+                </div>
+            </div>
+
+            <div class="form-group" style="display: none;">
+                <label class="col-sm-3 control-label">小程序二维码:</label>
+                <div class="col-sm-8">
+                    <input id="input_appletQrUrl" name="appletQrUrl" th:field="*{appletQrUrl}" type="hidden"/>
+                    <div class="thumbnail slideshow_span bg-sm" id="div-appletQrUrl" onclick="javascript:bgUpload('qr')">
+                        <img th:src="@{*{appletQrUrl}}" style="width:100%;height:100%;">
                     </div>
                 </div>
             </div>
+
             <div class="form-group">
                 <label class="col-sm-3 control-label">菜单状态:</label>
                 <div class="col-sm-8">
@@ -149,7 +170,8 @@
                 <a href="javascript:void(0)" class="upload-img"> <label for="avatar">选择图片</label> </a>
                 <input type="file" class="" name="avatar" id="avatar" accept="image/*"/>
             </div>
-            <input type="button"  onclick="upBg()" class="btn-info Btnsty_peyton"  value="上传" />
+            <input type="button" id="submitbuttonBg" onclick="upBg()" class="btn-info Btnsty_peyton"  value="上传" />
+            <input type="button" id="submitbuttonQr" onclick="upQr()" class="btn-info Btnsty_peyton"  value="上传" />
             <input type="button"  onclick="back()" class="btn-info Btnsty_peyton "  value="返回" />
         </div>
 
@@ -160,12 +182,27 @@
         var prefix = ctx + "wxportal/magnet";
         var cropper;
         var size = "S";
+        var magnet_type = "0";
         var options = {
             thumbBox: '.thumbBox_'+size,
             spinner: '.spinner',
             imgSrc: ctx + 'img/profile.jpg'
         }
         $(function() {
+            var magnetType = $("#sel_magnetType").val();
+            var $appletQrUrl = $("#input_appletQrUrl").parents(".form-group");
+            var $url = $("#url").parents(".form-group");
+            if(magnetType == "0"){
+                $url.removeAttr('disabled');
+                $url.show();
+                $appletQrUrl.attr('disabled', 'disabled');
+                $appletQrUrl.hide();
+            } else if (magnetType == "1"){
+                $appletQrUrl.removeAttr('disabled');
+                $appletQrUrl.show();
+                $url.attr('disabled', 'disabled');
+                $url.hide();
+            }
             $("#form-magnet-edit").validate({
                 onkeyup: false,
                 rules: {
@@ -242,14 +279,22 @@
         }
 
         /*上传背景图片*/
-        function bgUpload() {
+        function bgUpload(value) {
+            var imgUrl = null;
+            if(value == 'bg'){
+                $("#submitbuttonQr").hide();
+                $("#submitbuttonBg").show();
+                imgUrl =$("#input_bgUrl").val();
+            } else if (value == 'qr'){
+                $("#submitbuttonBg").hide();
+                $("#submitbuttonQr").show();
+                imgUrl =$("#input_appletQrUrl").val();
+            }
             $("#div1").hide();
             $("#div2").show();
-            var imgUrl =$("#input_bgUrl").val();
+
             if(imgUrl==null||imgUrl==''){
                 imgUrl =  ctx + 'img/profile.jpg';
-            }else{
-                imgUrl = ctx+$("#input_bgUrl").val();
             }
             options = {
                 thumbBox: '.thumbBox_'+size,
@@ -272,7 +317,7 @@
                 success: function(result) {
                     if(result.code==0){
                         $("#input_bgUrl").val(result.data.fileName);
-                        $("#div-bgUrl").html("<img src='"+result.data.url+"' style='width100%;height:100%;'>");
+                        $("#div-bgUrl").html("<img src='"+result.data.url+"' style='width:100%;height:100%;'>");
                         $("#div1").show();
                         $("#div2").hide();
                     }else{
@@ -284,7 +329,31 @@
                 }
             })
         }
+        function upQr() {
+            var img = cropper.getBlob();
+            var formdata = new FormData();
+            formdata.append("file", img);
+            $.ajax({
+                url: ctx + "common/upload",
+                data: formdata,
+                type: "post",
+                processData: false,
+                contentType: false,
+                success: function(result) {
+                    if(result.code==0){
+                        $("#input_appletQrUrl").val(result.data.fileName);
+                        $("#div-appletQrUrl").html("<img src='"+result.data.url+"' style='width:100%;height:100%;'>");
+                        $("#div1").show();
+                        $("#div2").hide();
+                    }else{
+                        $("#div1").show();
+                        $("#div2").hide();
+                        $.modal.alertWarning(result.msg);
+                    }
 
+                }
+            })
+        }
         function sizeChange(){
             size = $("#sel_magnetSize").val();
             $("#div-bgUrl").removeClass("bg-sm");
@@ -309,6 +378,26 @@
                 $("#thumbBox").addClass("thumbBox_S");
             }
         }
+        function magnetTypeChange(){
+            magnet_type = $("#sel_magnetType").val();
+            var $appletQrUrl = $("#input_appletQrUrl").parents(".form-group");
+            var $url = $("#url").parents(".form-group");
+            if(magnet_type == "0"){
+                $appletQrUrl.attr('disabled', 'disabled');
+                $appletQrUrl.hide();
+                $("#input_appletQrUrl").val("");
+
+                $url.removeAttr('disabled');
+                $url.show();
+            }else if(magnet_type == "1"){
+                $("#imageBox").addClass("imageBox imageBox_S");
+                $("#thumbBox").addClass("thumbBox_S");
+                $appletQrUrl.removeAttr('disabled');
+                $appletQrUrl.show();
+                $url.attr('disabled', 'disabled');
+                $url.hide();
+            }
+        }
 
     </script>
 </body>

+ 10 - 0
suishenbang-wxportal/suishenbang-wxportal-manager/src/main/resources/templates/wxportal/magnet/wxMagnet.html

@@ -65,6 +65,7 @@
 		var removeFlag = [[${@permission.hasPermi('wxportal:magnet:remove')}]];
 		var datas = [[${@dict.getType('sys_show_hide')}]];
         var magnetSizeList = [[${@dict.getType('wx_magnet_size')}]];
+        var magnetTypeDatas = [[${@dict.getType('sys_magnet_type')}]];
 		var prefix = ctx + "wxportal/magnet";
 
 		$(function() {
@@ -115,6 +116,15 @@
 		            width: '15%',
 		            align: "left"
 		        },
+				{
+					title: '磁贴应用类型',
+					field: 'magnetType',
+					width: '10%',
+					align: "left",
+					formatter: function(value, item, index) {
+						return $.table.selectDictLabel(magnetTypeDatas, item.magnetType);
+					}
+				},
 		        {
 		            title: '磁贴尺寸',
 		            field: 'magnetType',