Authored by weiqingting

Merge branch 'develop' into release/1.6

# Conflicts:
#	server/views/pages/guang/contentEdit.html
@@ -3,6 +3,9 @@ @@ -3,6 +3,9 @@
3 var $ = require('jquery'), 3 var $ = require('jquery'),
4 common=require('../common/common'); 4 common=require('../common/common');
5 5
  6 +var pricePercent = 0.2; //yoho币审核比例线
  7 +var loadModal = null;
  8 +var importYohoCoinData = null;
6 var ENUM = { 9 var ENUM = {
7 gender: { 10 gender: {
8 1: '男', 11 1: '男',
@@ -10,100 +13,46 @@ var ENUM = { @@ -10,100 +13,46 @@ var ENUM = {
10 3: '通用' 13 3: '通用'
11 }, 14 },
12 status: { 15 status: {
  16 + 0: '未设置',
13 1: '<font color="#428bca">待审核</font>', 17 1: '<font color="#428bca">待审核</font>',
14 2: '<font color="#5cb85c">通过</font>', 18 2: '<font color="#5cb85c">通过</font>',
15 3: '<font color="#d9534f">驳回</font>' 19 3: '<font color="#d9534f">驳回</font>'
16 } 20 }
17 } 21 }
18 22
19 -/*  
20 -var g = new common.grid({  
21 - el: "#yohoCoin_table1",  
22 - parms: function() {  
23 - return {  
24 - product_skn: common.util.__input("skn"),  
25 - shop_id: common.util.__input("shop"),  
26 - brand_id: common.util.__input("brand"),  
27 - supplier_id: common.util.__input("supplier"),  
28 - gender: common.util.__input("gender")  
29 - };  
30 - },  
31 - columns: [{  
32 - display: 'SKN',  
33 - name: 'product_skn'  
34 - }, {  
35 - display: '商品信息',  
36 - name: 'info',  
37 - render: function(item) {  
38 - return '<div>名称:' + item.product_name + '</div>' +  
39 - '<div>品牌:' + item.brand_name + '</div>' +  
40 - '<div>类目:' + item.middle_sort_name + '<b> ></b> ' + item.small_sort_name + '</div>';  
41 - }  
42 - }, {  
43 - display: '供应商 / 店铺',  
44 - name: 'supplier_name',  
45 - render: function(item) {  
46 - var html = '';  
47 - if (item.supplier_name) {  
48 - html += item.supplier_name;  
49 - }  
50 - if (item.shop_name) {  
51 - html += '/' + item.shop_name;  
52 - }  
53 - return html;  
54 - }  
55 - }, {  
56 - display: '性别',  
57 - name: 'gender',  
58 - render: function(item) {  
59 - return ENUM.gender[item.gender];  
60 - }  
61 - }, {  
62 - display: '吊牌价',  
63 - name: 'retail_price'  
64 - }, {  
65 - display: '销售价',  
66 - name: 'sales_price'  
67 - }, {  
68 - display: '返币金额',  
69 - name: 'return_coin'  
70 - }, {  
71 - display: '状态',  
72 - name: 'status',  
73 - render: function(item) {  
74 - return ENUM.status[item.status];  
75 - }  
76 - },{  
77 - display: '操作信息',  
78 - name: 'operateInfo',  
79 - render: function(item) {  
80 - var html = '';  
81 - if (item.founder_name) {  
82 - html += '<div>' + item.founder_name + '</div>';  
83 - }  
84 - if (item.updateTime) {  
85 - html += '<div>' + item.updateTime + '</div>';  
86 - }  
87 - return html;  
88 - }  
89 - }, {  
90 - display: '操作',  
91 - render: function(item) {  
92 - return '<a href="javascript:;" class="btn btn-info btn-xs btn-modify" data-skn="' + item.product_skn + '">修改</a>'  
93 - }  
94 - }] 23 +new common.dropDown({
  24 + el: '#shop',
  25 + ajax: 'shopsRest'
  26 +});
  27 +new common.dropDown({
  28 + el: '#brand',
  29 + ajax: 'brand'
  30 +});
  31 +new common.dropDown({
  32 + el: '#supplier',
  33 + ajax: 'querySupplier'
95 }); 34 });
96 -*/  
97 35
  36 +//多级菜单
  37 +var tabTree = new common.tabTree("#sortTree", {status: 1, sortLevel: 1});
  38 +tabTree.init();
  39 +
  40 +//grid列表生成
98 var g = new common.grid({ 41 var g = new common.grid({
99 el: "#yohoCoin_table", 42 el: "#yohoCoin_table",
100 parms: function() { 43 parms: function() {
  44 + var select = tabTree.getAddress();
101 return { 45 return {
102 - product_skn: common.util.__input("skn"),  
103 - shop_id: common.util.__input("shop"),  
104 - brand_id: common.util.__input("brand"),  
105 - supplier_id: common.util.__input("supplier"),  
106 - gender: common.util.__input("gender") 46 + productSkn: common.util.__input("skn"),
  47 + shopId: common.util.__input("shop"),
  48 + brandId: common.util.__input("brand"),
  49 + supplierId: common.util.__input("supplier"),
  50 + gender: common.util.__input("gender"),
  51 + auditStatus: common.util.__input("auditStatus"),
  52 + maxSortId: select[0] ? select[0].id : "",
  53 + middleSortId: select[1] ? select[1].id : "",
  54 + smallSortId: select[2] ? select[2].id : "",
  55 + sortId: select[3] ? select[3].id : ""
107 }; 56 };
108 }, 57 },
109 columns: [{ 58 columns: [{
@@ -114,21 +63,263 @@ var g = new common.grid({ @@ -114,21 +63,263 @@ var g = new common.grid({
114 $("#yohoCoin_table").find("thead tr th").html($("#coinListHead").html()); 63 $("#yohoCoin_table").find("thead tr th").html($("#coinListHead").html());
115 } 64 }
116 item.genderName = ENUM.gender[item.gender]; 65 item.genderName = ENUM.gender[item.gender];
  66 + item.statusName = ENUM.status[item.productPrice.coinStatus];
  67 +
117 html += common.util.__template2($("#coinList").html(),item); 68 html += common.util.__template2($("#coinList").html(),item);
118 return html; 69 return html;
119 } 70 }
120 }] 71 }]
121 }); 72 });
122 -  
123 g.init($("#gridurl").val()); 73 g.init($("#gridurl").val());
124 74
  75 +//批量上传
  76 +ajaxUpload();
  77 +
  78 +/**********************接口*************************/
  79 +
  80 +//保存接口
  81 +function ajaxSave(productSkn, yohoCoin, auditorId, salesPrice){
  82 + common.util.__ajax({
  83 + url:'/good/yohoCoin/set',
  84 + data: {
  85 + "productSkn": productSkn,
  86 + "returnCoin": yohoCoin,
  87 + "salesPrice": salesPrice,
  88 + "auditorId": auditorId
  89 + }
  90 + },function(rs){
  91 + console.log("yoho币保存返回" + rs);
  92 + if(yohoCoin < (salesPrice * pricePercent)){
  93 +
  94 + }
  95 + });
  96 +}
  97 +
  98 +//批量导入接口
  99 +function ajaxUpload(){
  100 + common.edit.ajaxfileupload('#yohoCoinUpload',{
  101 + params: {
  102 + type: "yohoCoin",
  103 + __type: "batch-import"
  104 + },
  105 + onStart: function() {
  106 + loadModal = common.dialog.load();
  107 + clearImportResult();
  108 + },
  109 + onComplete: function(response) {
  110 + console.log("批量接口返回数据",response);
  111 + if (response.code == 200 && response.data.taskId) {
  112 + ajaxExeclByTaskId(response.data.taskId);
  113 + return true;
  114 + }
  115 + else if(response.data && response.data.failFileReason.length){
  116 + loadingClose();
  117 + showImportMessage(response.data.failFileReason.join('<br/>'), "error");
  118 + common.util.__tip("上传出错!具体请看批量上传结果。", 'warning');
  119 + return false;
  120 + }
  121 + else{
  122 + loadingClose();
  123 + showImportMessage(response.message, "error");
  124 + common.util.__tip(response.message);
  125 + }
  126 + }
  127 + });
  128 +}
  129 +
  130 +//异步批量上传接口
  131 +function ajaxExeclByTaskId(taskId){
  132 + //异步调用的接口importResult/queryBatchImportResult 参数名param
  133 + common.util.__ajax({
  134 + url: '/yohoCoin/importResult/queryBatchImportResult',
  135 + data: {
  136 + param:taskId
  137 + }
  138 + },function(res){
  139 + console.log("异步返回接口",res);
  140 + if(res.data.length){
  141 + loadingClose();
  142 + importYohoCoinData = res.data;
  143 + showImportTable(res);
  144 + showImportMessage("批量导入成功!", "success");
  145 + common.util.__tip("批量导入成功!", 'success');
  146 + }else{
  147 + setTimeout(function(){
  148 + ajaxExeclByTaskId.call(null,taskId);
  149 + },5000);
  150 + }
  151 + },true);
  152 +}
  153 +
  154 +//批量上传确认
  155 +function ajaxUploadSubmit(data){
  156 + common.util.__ajax({
  157 + url:'',
  158 + data: data
  159 + },function(rs){
  160 + location.href = '';
  161 + });
  162 +}
  163 +
  164 +/**********************业务方法*************************/
  165 +
  166 +//显示批量导入结果
  167 +function showImportMessage(message, statue){
  168 + $("#yohoCoinImportMessage").removeAttr("class").addClass(statue).show();
  169 + $("#detailMassage").text(message);
  170 +}
  171 +
  172 +//显示批量导入数据表
  173 +function showImportTable(data){
  174 + $("#importResultTable").html(common.util.__template2($("#yohoCoinImportResultTable").html(),data));
  175 + $("#yohoCoinImportResultSet").show();
  176 + $("#yohoCoinImportResult").show();
  177 +}
  178 +
  179 +//初始化批量导入结果及列表
  180 +function clearImportResult(){
  181 + $("#detailMassage").empty();
  182 + $("#importResultTable").empty();
  183 + $("#importAuditor").val("");
  184 +
  185 + $("#yohoCoinImportMessage").hide();
  186 + $("#yohoCoinImportResultSet").hide();
  187 + $("#yohoCoinImportResult").hide();
  188 +}
  189 +
  190 +//吊牌价跟销售价校验
  191 +function checkPrice(retailPrice, salesPrice){
  192 + if(retailPrice == salesPrice){
  193 + return true;
  194 + }else{
  195 + common.util.__tip("销售价与吊牌价不同,YOHO币只能为0!");
  196 + return false;
  197 + }
  198 +}
  199 +
  200 +//yoho币金额校验
  201 +function checkYohoCoin(yohoCoin, auditor, price){
  202 + if(yohoCoin.val()){
  203 + if(!isNaN(yohoCoin.val())){
  204 + if(yohoCoin.val() < 0){
  205 + yohoCoin.focus().select().addClass("error");
  206 + common.util.__tip("YOHO币金额不能小于0!");
  207 + return false;
  208 + }
  209 + //yoho币大于等于销售额的20%需要校验审核人
  210 + if(yohoCoin.val() >= (price * pricePercent)){
  211 + return checkAuditor(auditor);
  212 + }
  213 + }else{
  214 + yohoCoin.focus().select().addClass("error");
  215 + common.util.__tip("YOHO币金额必须为数字!");
  216 + return false;
  217 + }
  218 + }else{
  219 + yohoCoin.focus().addClass("error");
  220 + common.util.__tip("YOHO币金额不能为空!");
  221 + return false;
  222 + }
  223 + return true;
  224 +}
  225 +
  226 +//审核人校验
  227 +function checkAuditor(auditor){
  228 + if(auditor.val() == ""){
  229 + auditor.focus().addClass("error");
  230 + common.util.__tip("审核人不能为空!");
  231 + return false;
  232 + }
  233 + return true;
  234 +}
  235 +
  236 +//保存单行数据刷新
  237 +function freshYohoCoinRowData(productSkn, yohoCoin, status){
  238 + var SknDom = $('._' + productSkn);
  239 + SknDom.find(".returnYohoCoin").text(yohoCoin);
  240 + SknDom.find(".coinStatus").text(ENUM.status[status]);
  241 +}
  242 +
  243 +//关闭loading
  244 +function loadingClose(){
  245 + if (loadModal) {
  246 + loadModal.close();
  247 + }
  248 +}
  249 +
  250 +/**********************事件*************************/
  251 +
  252 +//批量导入结果列表删除
  253 +$(document).on('click', '.btn-delete-yohoCoin', function() {
  254 + var index = $(this).data("index");
  255 + if(importYohoCoinData){
  256 + [].splice.call(importYohoCoinData,index,1);
  257 + $("#importResultTable").html(common.util.__template2($("#yohoCoinImportResultTable").html(),data));
  258 + }
  259 +});
  260 +
  261 +//批量导入结果列表确定
  262 +$(document).on('click', '.btn-submit-yohoCoin', function() {
  263 + ajaxUploadSubmit();
  264 +});
  265 +
  266 +//保存操作
  267 +$(document).on('click', '.btn-save', function() {
  268 + var productSkn = $(this).data('productskn');
  269 + var sknDom = $('._' + productSkn);
  270 +
  271 + var retailPrice = sknDom.find('.retailPrice').text(); //吊牌价
  272 + var salesPrice = sknDom.find('.salesPrice').text(); //销售价
  273 +
  274 + if(checkPrice(retailPrice, salesPrice)){
  275 + var yohoCoinInput = sknDom.find('.editor-yohoCoin');
  276 + var auditorInput = sknDom.find('.editor-auditor');
  277 +
  278 + if(checkYohoCoin(yohoCoinInput, auditorInput, salesPrice)){
  279 + ajaxSave(productSkn, yohoCoinInput.val(), auditorInput.val(), salesPrice);
  280 + }
  281 + }
  282 +});
  283 +
  284 +//显示修改
125 $(document).on('click', '.btn-modify', function() { 285 $(document).on('click', '.btn-modify', function() {
126 if($(this).hasClass("openEditor")){ 286 if($(this).hasClass("openEditor")){
127 $(this).text("修改").removeClass("openEditor"); 287 $(this).text("修改").removeClass("openEditor");
128 - $(this).parents(".dataForShow").find(".dataForEditor td").hide(); 288 + var dataForShow = $(this).parents(".dataForShow");
  289 + dataForShow.find(".dataForEditor td").hide();
  290 + dataForShow.find(".editor-yohoCoin").val(dataForShow.find(".returnYohoCoin").text());
  291 + dataForShow.find(".editor-auditor").val("");
129 }else{ 292 }else{
130 $(this).text("收起").addClass("openEditor"); 293 $(this).text("收起").addClass("openEditor");
131 $(this).parents(".dataForShow").find(".dataForEditor td").show(); 294 $(this).parents(".dataForShow").find(".dataForEditor td").show();
132 } 295 }
133 }); 296 });
134 297
  298 +//显示批量导入
  299 +$(document).on('click', '#import-btn', function() {
  300 + $('#yohoCoin_table').hide();
  301 + $('#yohoCoinSearch').hide();
  302 + $('#yohoCoin_import').show();
  303 +});
  304 +
  305 +//返回列表
  306 +$(document).on('click', '#return-btn', function() {
  307 + $('#yohoCoin_import').hide();
  308 + $('#yohoCoinSearch').show();
  309 + $('#yohoCoin_table').show();
  310 +});
  311 +
  312 +//筛选
  313 +$(document).on('click', '#filter-btn', function() {
  314 + g.reload(1);
  315 +});
  316 +
  317 +//全部
  318 +$(document).on('click', '#all-btn', function() {
  319 + location.href = '';
  320 +});
  321 +
  322 +//校验失败编辑
  323 +$(document).on('change', '#yohoCoin_table .error', function() {
  324 + $(this).removeClass('error');
  325 +});
  1 +//yoho币
  2 +'use strict';
  3 +var $ = require('jquery'),
  4 + common=require('../common/common');
  5 +
  6 +var ENUM = {
  7 + gender: {
  8 + 1: '男',
  9 + 2: '女',
  10 + 3: '通用'
  11 + },
  12 + status: {
  13 + 0: '未设置',
  14 + 1: '<font color="#428bca">待审核</font>',
  15 + 2: '<font color="#5cb85c">通过</font>',
  16 + 3: '<font color="#d9534f">驳回</font>'
  17 + }
  18 +}
  19 +
  20 +new common.dropDown({
  21 + el: '#shop',
  22 + ajax: 'shopsRest'
  23 +});
  24 +new common.dropDown({
  25 + el: '#brand',
  26 + ajax: 'brand'
  27 +});
  28 +new common.dropDown({
  29 + el: '#supplier',
  30 + ajax: 'querySupplier'
  31 +});
  32 +
  33 +//多级菜单
  34 +var tabTree = new common.tabTree("#sortTree", {status: 1, sortLevel: 1});
  35 +tabTree.init();
  36 +
  37 +var g = new common.grid({
  38 + el: "#yohoCoinAudit_table",
  39 + parms: function() {
  40 + var select = tabTree.getAddress();
  41 + return {
  42 + auditStatus: $("#yohoCoinNav .active").data('status'),
  43 + product_skn: common.util.__input("skn"),
  44 + shop_id: common.util.__input("shop"),
  45 + brand_id: common.util.__input("brand"),
  46 + supplier_id: common.util.__input("supplier"),
  47 + gender: common.util.__input("gender"),
  48 + maxSortId: select[0] ? select[0].id : "",
  49 + middleSortId: select[1] ? select[1].id : "",
  50 + smallSortId: select[2] ? select[2].id : "",
  51 + sortId: select[3] ? select[3].id : ""
  52 + };
  53 + },
  54 + columns: [{
  55 + display: 'SKN',
  56 + name: 'productSkn'
  57 + }, {
  58 + display: '商品信息',
  59 + name: 'info',
  60 + render: function(item) {
  61 + var html = ""
  62 + html += "<p>名称:" + item.productName + "</p>" + "<p>品牌:" + item.brandName + "</p>" + "<div>类目:";
  63 + if(item.maxSortName) {html += item.maxSortName;}
  64 + if(item.middleSortName) {html += "&nbsp;>&nbsp;" + item.middleSortName;}
  65 + if(item.smallSortName) {html += "&nbsp;>&nbsp;" + item.smallSortName;}
  66 + html += "</div>";
  67 + return html;
  68 + }
  69 + }, {
  70 + display: '供应商 / 店铺',
  71 + name: 'supplier_name',
  72 + render: function(item) {
  73 + var html = '';
  74 + if (item.supplierName) {html += item.supplierName;}
  75 + if (item.shopName) {html += '&nbsp;/&nbsp;' + item.shopName;}
  76 + return html;
  77 + }
  78 + }, {
  79 + display: '性别',
  80 + name: 'gender',
  81 + render: function(item) {
  82 + return ENUM.gender[item.gender];
  83 + }
  84 + }, {
  85 + display: '吊牌价',
  86 + name: 'retailPrice'
  87 + }, {
  88 + display: '销售价',
  89 + name: 'salesPrice'
  90 + }, {
  91 + display: '返币数',
  92 + name: 'returnCoin',
  93 + render: function(item) {
  94 + return item.productPrice.returnCoin;
  95 + }
  96 + }, {
  97 + display: '状态',
  98 + name: 'status',
  99 + render: function(item) {
  100 + return ENUM.status[item.productPrice.coinStatus];
  101 + }
  102 + },{
  103 + display: '操作信息',
  104 + name: 'operateInfo',
  105 + render: function(item) {
  106 + var html = '';
  107 + if (item.productPrice.founder) {html += '<p>' + item.productPrice.founder + '</p>';}
  108 + if (item.productPrice.updateTime) {html += '<p>' + item.productPrice.updateTime + '</p>';}
  109 + return html;
  110 + }
  111 + }, {
  112 + display: '操作',
  113 + render: function(item) {
  114 + return '<a href="javascript:;" class="btn btn-success btn-xs btn-checkOk" data-skn="' + item.productSkn + '">审核通过</a>' +
  115 + '<a href="javascript:;" class="btn btn-danger btn-xs btn-checkNo" data-skn="' + item.productSkn + '">驳回</a>';
  116 + }
  117 + }]
  118 +});
  119 +g.init($("#gridurl").val());
  120 +
  121 +//选择分类
  122 +$(document).on('click', '#yohoCoinNav li', function() {
  123 + $(this).addClass("active").siblings().removeClass("active");
  124 + g.reload();
  125 +});
  126 +
  127 +//审核通过
  128 +$(document).on('click', '.btn-checkOk', function() {
  129 + var productSkn = $(this).data("skn");
  130 + common.dialog.confirm(
  131 + "审核通过确认",
  132 + "你确认<strong style='color:#5cb85c'>&nbsp;&nbsp;审核通过&nbsp;&nbsp;</strong>么?",
  133 + function(){
  134 + common.util.__ajax({
  135 + url:'/good/yohoCoin/pass',
  136 + data: {
  137 + "productSkn": productSkn
  138 + }
  139 + },function(rs){
  140 + g.reload();
  141 + });
  142 + },
  143 + function(){}
  144 + );
  145 +});
  146 +
  147 +//驳回
  148 +$(document).on('click', '.btn-checkNo', function() {
  149 + var productSkn = $(this).data("skn");
  150 + common.dialog.confirm(
  151 + "审核驳回确认",
  152 + "你确认<strong style='color:#d9534f'>&nbsp;&nbsp;审核驳回&nbsp;&nbsp;</strong>么?如果确认,<strong style='color: #f0ad4e'>请填写驳回理由!</strong> \
  153 + <textarea id='checkComment' class='form-control' rows='3' style='margin: 10px 0'></textarea> \
  154 + <div class='checkTip' style='display: none; color: #ff0000; font-weight: bold'><span>提示:请填写驳回理由!</span></div>",
  155 + function(){
  156 + var comment = $("#checkComment").val();
  157 + if(comment){
  158 + common.util.__ajax({
  159 + url:'/good/yohoCoin/reject',
  160 + data: {
  161 + "productSkn": productSkn,
  162 + "comment": comment
  163 + }
  164 + },function(rs){
  165 + g.reload();
  166 + });
  167 + }else{
  168 + $("#checkComment").focus();
  169 + $(".checkTip").show();
  170 + return false;
  171 + }
  172 + },
  173 + function(){}
  174 + );
  175 +});
  176 +
  177 +
  178 +
@@ -176,11 +176,7 @@ $(document).on('click', 'input[name="brandType"]', function () { @@ -176,11 +176,7 @@ $(document).on('click', 'input[name="brandType"]', function () {
176 176
177 function plusStarOP(prefix, url, item) { 177 function plusStarOP(prefix, url, item) {
178 178
179 - if(prefix == "编辑") {  
180 - imgArr = item.activityImg||[];  
181 - } else {  
182 - imgArr = [];  
183 - } 179 +
184 180
185 var a = new common.edit('#templete-top'); 181 var a = new common.edit('#templete-top');
186 common.dialog.confirm(prefix+'品牌', common.util.__template2($("#template").html(), item), function () { 182 common.dialog.confirm(prefix+'品牌', common.util.__template2($("#template").html(), item), function () {
@@ -217,6 +213,13 @@ function plusStarOP(prefix, url, item) { @@ -217,6 +213,13 @@ function plusStarOP(prefix, url, item) {
217 $('#activity-name').css('display', 'none'); 213 $('#activity-name').css('display', 'none');
218 $('input[name="brandType"][value="' + val + '"]').trigger('click'); 214 $('input[name="brandType"][value="' + val + '"]').trigger('click');
219 215
  216 + if(prefix == "编辑") {
  217 + imgArr = item.activityImg||[];
  218 + $('#brandId').attr('disabled', true);
  219 + } else {
  220 + imgArr = [];
  221 + $('#brandId').attr('disabled',false);
  222 + }
220 223
221 rendBoList(imgArr); 224 rendBoList(imgArr);
222 225
@@ -95,8 +95,11 @@ var g = new common.grid({ @@ -95,8 +95,11 @@ var g = new common.grid({
95 render: function (items) { 95 render: function (items) {
96 var HtmArr = []; 96 var HtmArr = [];
97 97
98 - HtmArr.push('<a data-index="' + items.__index + '" href="JavaScript:;" class="btn btn-primary btn-xs comment-pass">通过</a>');  
99 - HtmArr.push('<a data-index="' + items.__index + '" href="JavaScript:;" class="btn btn-danger btn-xs comment-mask">屏蔽</a>'); 98 + if(items.auditStatus == 0) {
  99 + HtmArr.push('<a data-index="' + items.__index + '" href="JavaScript:;" class="btn btn-primary btn-xs comment-pass">通过</a>');
  100 + HtmArr.push('<a data-index="' + items.__index + '" href="JavaScript:;" class="btn btn-danger btn-xs comment-mask">屏蔽</a>');
  101 +
  102 + }
100 103
101 return HtmArr.join(''); 104 return HtmArr.join('');
102 } 105 }
@@ -74,7 +74,7 @@ var g = new common.grid({ @@ -74,7 +74,7 @@ var g = new common.grid({
74 articleGender: common.util.__input('articleGender'), 74 articleGender: common.util.__input('articleGender'),
75 authorId: common.util.__input('authorId'), 75 authorId: common.util.__input('authorId'),
76 maxSortId: common.util.__input('maxSortId'), 76 maxSortId: common.util.__input('maxSortId'),
77 - status: common.util.__input('status'), 77 + status: $('#status').val(),//common.util.__input('status'),
78 orderBy: common.util.__input('orderBy'), 78 orderBy: common.util.__input('orderBy'),
79 startTime: common.util.__input('starttime'), 79 startTime: common.util.__input('starttime'),
80 endTime: common.util.__input('endtime'), 80 endTime: common.util.__input('endtime'),
@@ -92,7 +92,11 @@ var g = new common.grid({ @@ -92,7 +92,11 @@ var g = new common.grid({
92 } 92 }
93 }, { 93 }, {
94 display: '文章标题', 94 display: '文章标题',
95 - name: "articleTitle" 95 + //name: "articleTitle",
  96 + width:'15%',
  97 + render: function(item) {
  98 + return '<span class="text-overflow"">'+item.articleTitle+'</span>'
  99 + }
96 }, { 100 }, {
97 display: '分类', 101 display: '分类',
98 name: "maxSortName" 102 name: "maxSortName"
@@ -233,7 +237,7 @@ $(document).on('click', '.info-recommend-cancel', function() { @@ -233,7 +237,7 @@ $(document).on('click', '.info-recommend-cancel', function() {
233 url: '/guang/article/operation', 237 url: '/guang/article/operation',
234 data: { 238 data: {
235 id: item.id, 239 id: item.id,
236 - isRecommend: -1 240 + isRecommend: 0
237 } 241 }
238 }, function(res) { 242 }, function(res) {
239 243
@@ -168,11 +168,6 @@ $(document).on('click', '.info-del', function() { @@ -168,11 +168,6 @@ $(document).on('click', '.info-del', function() {
168 168
169 function plusStarOP(prefix, url, item) { 169 function plusStarOP(prefix, url, item) {
170 170
171 - if(prefix == "编辑") {  
172 - imgArr = item.bannerImg||[];  
173 - } else {  
174 - imgArr = [];  
175 - }  
176 171
177 var a =new common.edit("#templete-top", { 172 var a =new common.edit("#templete-top", {
178 "bucket" : "plustar" 173 "bucket" : "plustar"
@@ -208,6 +203,16 @@ function plusStarOP(prefix, url, item) { @@ -208,6 +203,16 @@ function plusStarOP(prefix, url, item) {
208 203
209 a.init(); 204 a.init();
210 205
  206 + if(prefix == "编辑") {
  207 + imgArr = item.bannerImg||[];
  208 + $('#brandId').attr('disabled', true);
  209 + } else {
  210 + imgArr = [];
  211 + $('#brandId').attr('disabled', false);
  212 +
  213 + }
  214 +
  215 +
211 uploadImage(); 216 uploadImage();
212 rendBoList(imgArr); 217 rendBoList(imgArr);
213 218
@@ -590,4 +590,12 @@ ul { @@ -590,4 +590,12 @@ ul {
590 // background: url(images/closeSelector.png) no-repeat; 590 // background: url(images/closeSelector.png) no-repeat;
591 cursor: pointer; 591 cursor: pointer;
592 z-index: 9999 592 z-index: 9999
  593 +}
  594 +
  595 +.text-overflow {
  596 + display : inline-block;
  597 + overflow : hidden;
  598 + text-overflow : ellipsis;
  599 + white-space : nowrap;
  600 + width : 250px;
593 } 601 }
@@ -28,11 +28,70 @@ @@ -28,11 +28,70 @@
28 padding: 0; 28 padding: 0;
29 display: none; 29 display: none;
30 border-bottom: none; 30 border-bottom: none;
31 - background: #d9edf7; 31 + background1: #d9edf7;
32 } 32 }
33 #yohoCoin_table .dataForEditor tr:first-child{ 33 #yohoCoin_table .dataForEditor tr:first-child{
34 border-bottom: 1px solid #ddd; 34 border-bottom: 1px solid #ddd;
35 border-top: 1px solid #ddd; 35 border-top: 1px solid #ddd;
36 } 36 }
  37 +#yohoCoin_table .dataForEditor tr td .form-control{
  38 + display: inline-block;
  39 +}
  40 +#yohoCoin_table .dataForEditor tr td.editorTip{
  41 + color: #ff0000;
  42 + border-top: 1px solid #ddd
  43 +}
  44 +
  45 +#yohoCoin_table .error{ border: 2px solid #ff0000}
  46 +
  47 +#yohoCoin_import{
  48 + font-family: "Microsoft YaHei";
  49 +}
  50 +
  51 +#yohoCoinImportMessage{
  52 + display: none;
  53 + margin-top: 10px;
  54 + font-size: 18px;
  55 + font-weight: bold;
  56 + padding: 5px 10px;
  57 + background: #ccc;
  58 + color: #ffffff;
  59 +}
  60 +
  61 +#yohoCoin_import .success{
  62 + background:#449d44;
  63 +}
  64 +
  65 +#yohoCoin_import .error{
  66 + background:#ff0000;
  67 +}
  68 +
  69 +#yohoCoin_import .title{
  70 + padding: 5px 10px;
  71 + background: #5bc0de;
  72 + height: auto;
  73 + text-align: left;
  74 + border:1px solid #46b8da;
  75 + color: #FFFFFF;
  76 + font-size: 14px;
  77 +}
  78 +
  79 +#yohoCoinImportResult, #yohoCoinImportResultSet{
  80 + display: none;
  81 + margin-top: 10px;
  82 +}
37 83
  84 +#yohoCoinImportResultSet .form-inline{
  85 + margin: 10px 0 0;
  86 + padding: 0 20px;
  87 +}
  88 +
  89 +#importResultTable{
  90 + padding: 10px 20px;
  91 + text-align: center;
  92 +}
38 93
  94 +#importResultTable th, #importResultTable td{
  95 + text-align: center;
  96 + vertical-align: inherit;
  97 +}
@@ -381,6 +381,22 @@ exports.res = [ @@ -381,6 +381,22 @@ exports.res = [
381 {name: 'bannerTitle', type: 'String'}, 381 {name: 'bannerTitle', type: 'String'},
382 {name: 'orderBy', type: 'String'}, 382 {name: 'orderBy', type: 'String'},
383 ] 383 ]
  384 + },{
  385 + // Plus/Star列表-修改
  386 + route: '/guang/plustar/updatePlustar',
  387 + method: 'POST',
  388 + url: '/guang/plustar/updatePlustar',
  389 + params: [
  390 + {name: 'id', type: 'String'},
  391 + {name: 'brandType', type: 'String'},
  392 + {name: 'status', type: 'String'},
  393 + {name: 'brandId', type: 'String'},
  394 + {name: 'gender', type: 'String'},
  395 + {name: 'coverImg', type: 'String'},
  396 + {name: 'bannerImg', type: 'String'},
  397 + {name: 'bannerTitle', type: 'String'},
  398 + {name: 'orderBy', type: 'String'},
  399 + ]
384 }, { 400 }, {
385 // Plus/Star列表-编辑 401 // Plus/Star列表-编辑
386 route: '/guang/plustar/getDetail', 402 route: '/guang/plustar/getDetail',
@@ -536,6 +552,8 @@ exports.res = [ @@ -536,6 +552,8 @@ exports.res = [
536 url: '/guang/tagSort/getTagItems', 552 url: '/guang/tagSort/getTagItems',
537 params: [ 553 params: [
538 {name: 'status', type: 'Number'}, 554 {name: 'status', type: 'Number'},
  555 + {name: 'idName', type: 'String'}
  556 +
539 ] 557 ]
540 558
541 }, 559 },
1 exports.domain = require('../config/common.js').domain; 1 exports.domain = require('../config/common.js').domain;
  2 +//exports.domain = 'http://172.16.6.214:8088/platform';
2 3
3 exports.res = [ 4 exports.res = [
4 - { 5 +
  6 +/*************************yoho币管理页面接口*******************************/
  7 +
  8 + {//yoho币管理页面渲染
5 route: '/goods/yohoCoin/index', 9 route: '/goods/yohoCoin/index',
6 method: 'GET', 10 method: 'GET',
7 view: 'pages/goods/yohoCoin', 11 view: 'pages/goods/yohoCoin',
@@ -10,7 +14,7 @@ exports.res = [ @@ -10,7 +14,7 @@ exports.res = [
10 pagetitle: { 14 pagetitle: {
11 level1title: '商品管理', 15 level1title: '商品管理',
12 level2title: '价格管理', 16 level2title: '价格管理',
13 - level3title: 'yoho币管理' 17 + level3title: 'YOHO币管理'
14 }, 18 },
15 filter: { 19 filter: {
16 skn: true, 20 skn: true,
@@ -18,13 +22,94 @@ exports.res = [ @@ -18,13 +22,94 @@ exports.res = [
18 brand: true, 22 brand: true,
19 supplier: true, 23 supplier: true,
20 gender: true, 24 gender: true,
21 - cate_1: true,  
22 - cate_2: true,  
23 - cate_3: true, 25 + sortTree: true,
24 returnCoinTime: false, 26 returnCoinTime: false,
25 bulkImport: true 27 bulkImport: true
26 }, 28 },
27 - gridurl: '/goods/price/list' 29 + gridurl: '/good/yohoCoin/queryPageList'
  30 + }
  31 + },
  32 +
  33 + {//查询yoho币页面
  34 + route: "/good/yohoCoin/queryPageList",
  35 + method: "POST",
  36 + url: "/yohoCoin/queryPageList",
  37 + params:[
  38 + {name: 'productSkn', type: 'Number'},
  39 + {name: 'shopId', type: 'Number'},
  40 + {name: 'brandId', type: 'Number'},
  41 + {name: 'supplierId', type: 'Number'},
  42 + {name: 'gender', type: 'String'},
  43 + {name: 'auditStatus', type: 'Number'},
  44 + {name: 'maxSortId', type: 'Number'},
  45 + {name: 'middleSortId', type: 'Number'},
  46 + {name: 'smallSortId', type: 'Number'},
  47 + {name: 'sortId', type: 'Number'}
  48 + ]
  49 + },
  50 +
  51 + {//编辑保存yoho币
  52 + route: "/good/yohoCoin/set",
  53 + method: "POST",
  54 + url: "/yohoCoin/set",
  55 + params:[
  56 + {name: 'productSkn', type: 'Number'},
  57 + {name: 'returnCoin', type: 'Number'},
  58 + {name: 'salesPrice', type: 'Number'},
  59 + {name: 'auditorId', type: 'Number'}
  60 + ]
  61 + },
  62 +
  63 + {//批量上传
  64 + route: "/yohoCoin/importResult/queryBatchImportResult",
  65 + method: "POST",
  66 + url: "/importResult/queryBatchImportResult",
  67 + params:[
  68 + {name: 'param', type: 'String'},
  69 + ]
  70 + },
  71 +/*************************yoho币审核页面接口*******************************/
  72 +
  73 + {//yoho币审核页面渲染
  74 + route: '/goods/yohoCoin/Audit',
  75 + method: 'GET',
  76 + view: 'pages/goods/yohoCoinAudit',
  77 + src:'/goods/yohoCoinAudit',
  78 + 'data': {
  79 + pagetitle: {
  80 + level1title: '商品管理',
  81 + level2title: '价格管理',
  82 + level3title: 'YOHO币审核'
  83 + },
  84 + filter: {
  85 + skn: true,
  86 + store: true,
  87 + brand: true,
  88 + supplier: true,
  89 + gender: true,
  90 + sortTree: true,
  91 + returnCoinTime: false
  92 + },
  93 + gridurl: '/good/yohoCoin/queryPageList'
28 } 94 }
29 - } 95 + },
  96 +
  97 + {//审核通过
  98 + route: "/good/yohoCoin/pass",
  99 + method: "POST",
  100 + url: "/yohoCoin/pass",
  101 + params:[
  102 + {name: 'productSkn', type: 'Number'},
  103 + ]
  104 + },
  105 +
  106 + {//驳回
  107 + route: "/good/yohoCoin/reject",
  108 + method: "POST",
  109 + url: "/yohoCoin/reject",
  110 + params:[
  111 + {name: 'productSkn', type: 'Number'},
  112 + {name: 'comment', type: 'String'},
  113 + ]
  114 + },
30 ] 115 ]
@@ -29,12 +29,12 @@ @@ -29,12 +29,12 @@
29 </div> 29 </div>
30 30
31 <div class="contentpanel"> 31 <div class="contentpanel">
32 - <div class="panel panel-default" style="margin-bottom:10px;"> 32 + <div id="yohoCoinSearch" class="panel panel-default" style="margin-bottom:10px;">
33 {{# filter}} 33 {{# filter}}
34 <div class="panel-body"> 34 <div class="panel-body">
35 <div class="row"> 35 <div class="row">
36 {{# skn}} 36 {{# skn}}
37 - <div class="panel-col2"> 37 + <div class="panel-col">
38 <input id="skn" class="form-control panel-input height40" type="text" placeholder="请输入SKN" onkeyup="this.value=this.value.replace(/\D/gi,'')"> 38 <input id="skn" class="form-control panel-input height40" type="text" placeholder="请输入SKN" onkeyup="this.value=this.value.replace(/\D/gi,'')">
39 </div> 39 </div>
40 {{/ skn}} 40 {{/ skn}}
@@ -74,29 +74,23 @@ @@ -74,29 +74,23 @@
74 </div> 74 </div>
75 {{/ gender}} 75 {{/ gender}}
76 76
77 - {{# cate_1}}  
78 - <div class="panel-col">  
79 - <select name="cate_1" id="cate_1" tabindex="-1" title="" class="form-control">  
80 - <option value="-1">请选择一级类目</option>  
81 - </select>  
82 - </div>  
83 - {{/ cate_1}}  
84 -  
85 - {{# cate_2}} 77 + {{# gender}}
86 <div class="panel-col"> 78 <div class="panel-col">
87 - <select name="cate_2" id="cate_2" tabindex="-1" title="" class="form-control">  
88 - <option value="-1">请选择二级类目</option> 79 + <select name="auditStatus" id="auditStatus" tabindex="-1" title="" class="form-control">
  80 + <option value="-1">选择审核状态</option>
  81 + <option value="0">未设置</option>
  82 + <option value="1">待审核</option>
  83 + <option value="2">通过</option>
  84 + <option value="3">驳回</option>
89 </select> 85 </select>
90 </div> 86 </div>
91 - {{/ cate_2}} 87 + {{/ gender}}
92 88
93 - {{# cate_3}}  
94 - <div class="panel-col">  
95 - <select name="cate_3" id="cate_3" tabindex="-1" title="" class="form-control">  
96 - <option value="-1">请选择三级类目</option>  
97 - </select> 89 + {{# sortTree}}
  90 + <div class="panel-col2">
  91 + <div id="sortTree"></div>
98 </div> 92 </div>
99 - {{/ cate_3}} 93 + {{/ sortTree}}
100 94
101 {{# returnCoinTime}} 95 {{# returnCoinTime}}
102 <div class="panel-col form-inline" style="width: auto"> 96 <div class="panel-col form-inline" style="width: auto">
@@ -126,28 +120,65 @@ @@ -126,28 +120,65 @@
126 <div class="panel"> 120 <div class="panel">
127 <div class="dataTables_wrapper no-footer" id="yohoCoin_table"></div> 121 <div class="dataTables_wrapper no-footer" id="yohoCoin_table"></div>
128 122
129 - <div class="panel bulk-import">  
130 - <div class="import-hd">  
131 - <span class="excel-upload-wrap">  
132 - <label>选择文件</label>  
133 - <input id="upload-input" name="file" class="btn btn-default excel-upload" type="file">  
134 - </span> 123 + <div class="panel bulk-import" id="yohoCoin_import">
  124 + <a id="return-btn" href="javascript:;" class="btn btn-info">返回列表</a>
  125 +
  126 + <table class="table table-bordered" style="border:1px solid #ddd; margin-top: 10px">
  127 + <tr>
  128 + <td width="120px" style="line-height: 37px"><b>上传EXCEL:</b></td>
  129 + <td style="position: relative;">
  130 + <input id="yohoCoinUpload" name="file" type="file" style="cursor: pointer; height: 37px; top: 8px;">
  131 + <div class="file-name btn btn-primary">请选择文件</div>
  132 + </td>
  133 + </tr>
  134 + <tr>
  135 + <td width="120px"><b>说明:</b></td>
  136 + <td>
  137 + 1、上传文件必须是<span style="color:red;">.xlsx</span>文件<br>
  138 + 2、Excel表头为:<span style="color: #67D267;">SKN、品牌、吊牌价、返币金额(大于零,最多俩位小数)</span><br>
  139 + 3、第一行为表头内容,第二行开始为正式内容<br>
  140 + 4、每个文件控制在2500行以内<br>
  141 + 5、<a href="#" style="margin: 0; text-decoration: underline">下载样例.xlsx</a>
  142 + </td>
  143 + </tr>
  144 + </table>
135 145
136 - <a class="excel-model" href="/ajax/link/{{download}}">表头下载</a>  
137 - <input id="sure-change" class="btn btn-primary" type="button" value="确定变价"> 146 + <div id="yohoCoinImportMessage">
  147 + <b>批量上传结果:</b><span id="detailMassage"></span>
138 </div> 148 </div>
139 - <ol id="error-msg" class="error-msg" style="color: red"></ol>  
140 149
141 - <div class="priceTable-wrap">  
142 - <div class="panel panel-warning" style="margin: 0;">  
143 - <div class="panel-heading">SKN变价<a id="delete-all" class="btn btn-danger" style="margin-left: 50px;" href="javascript:;">全部删除</a></div> 150 + <div id="yohoCoinImportResultSet">
  151 + <div class="title">返还方式设置:</div>
  152 + <div class="form-inline" style="display: none">
  153 + <label style="width: 80px">反币时间:</label>
  154 + <div class="form-group">
  155 + <input type="radio" name="returnCoinTime" value="1">
  156 + <label>长期</label>
  157 + </div>
  158 + <div class="form-group">
  159 + <input type="radio" name="returnCoinTime" value="2">
  160 + <input type="text" class="form-control" style="width: 150px">&nbsp;~&nbsp;<input type="text" class="form-control" style="width: 150px">
  161 + </div>
  162 + </div>
  163 + <div class="form-inline">
  164 + <div class="form-group">
  165 + <label style="width: 80px">审核人:</label>
  166 + <select id="importAuditor" class="form-control" style="width: 150px">
  167 + <option value="">-- 请选择审核人 --</option>
  168 + <option value="2965">Tracy</option>
  169 + <option value="10235">David Wong</option>
  170 + </select>
  171 + <span style="color: #ff0000; margin-left: 20px">提示:返回金额大于等于销售价20%时必须填写审核人。</span>
  172 + </div>
  173 + <div class="form-group">
  174 + <a href="javascript:;" class="btn btn-success btn-submit-yohoCoin">确定</a>
  175 + </div>
144 </div> 176 </div>
145 - <div class="dataTables_wrapper no-footer" id="priceTable"></div>  
146 </div> 177 </div>
147 178
148 - <div class="success-wrap" style="display: none;">  
149 - <a class="btn btn-info" href="">返回变价列表</a>  
150 - <a id="download-btn" class="btn btn-success" data-domain="{{domain}}" href="javascript:;">下载导入结果</a> 179 + <div id="yohoCoinImportResult">
  180 + <div class="title">返币列表:</div>
  181 + <div id="importResultTable"></div>
151 </div> 182 </div>
152 </div> 183 </div>
153 </div> 184 </div>
@@ -165,9 +196,9 @@ @@ -165,9 +196,9 @@
165 <td style="width: 5%">性别</td> 196 <td style="width: 5%">性别</td>
166 <td style="width: 5%">吊牌价</td> 197 <td style="width: 5%">吊牌价</td>
167 <td style="width: 5%">销售价</td> 198 <td style="width: 5%">销售价</td>
168 - <td style="width: 5%">返还金额</td>  
169 - <td style="width: 5%">状态</td>  
170 - <td style="width: 15%">操作信息</td> 199 + <td style="width: 5%">返币数</td>
  200 + <td style="width: 8%">状态</td>
  201 + <td style="width: 12%">操作信息</td>
171 <td style="width: 5%">操作</td> 202 <td style="width: 5%">操作</td>
172 </tr> 203 </tr>
173 </tbody></table> 204 </tbody></table>
@@ -175,55 +206,50 @@ @@ -175,55 +206,50 @@
175 </script> 206 </script>
176 207
177 <script id="coinList" type="text/template"> 208 <script id="coinList" type="text/template">
178 - <div class="dataForShow"> 209 + <div class="dataForShow _[[productSkn]]">
179 <table><tbody> 210 <table><tbody>
180 <tr> 211 <tr>
181 - <td rowspan="2" span="2" class="center" style="width: 10%">[[product_skn]]</td> 212 + <td rowspan="2" span="2" class="center" style="width: 10%">[[productSkn]]</td>
182 <td class="" style="width: 25%"> 213 <td class="" style="width: 25%">
183 - <p>名称:[[product_name]]</p>  
184 - <p>品牌:[[brand_name]]</p>  
185 - <div>类目:[[middle_sort_name]] <b>></b>[[small_sort_name]]</div> 214 + <p>名称:[[productName]]</p>
  215 + <p>品牌:[[brandName]]</p>
  216 + <div>
  217 + 类目:[[if maxSortName]][[maxSortName]][[/if]]
  218 + [[if middleSortName]]&nbsp;>&nbsp;[[middleSortName]][[/if]]
  219 + [[if smallSortName]]&nbsp;>&nbsp;[[smallSortName]][[/if]]
  220 + </div>
186 </td> 221 </td>
187 <td style="width: 20%"> 222 <td style="width: 20%">
188 - [[if supplier_name]]  
189 - [[supplier_name]]  
190 - [[/if]]  
191 - [[if shop_name]]  
192 - /[[shop_name]]  
193 - [[/if]] 223 + [[if supplierName]][[supplierName]][[/if]]
  224 + [[if shopName]]&nbsp;/&nbsp;[[shopName]][[/if]]
194 </td> 225 </td>
195 <td class="center" style="width: 5%">[[genderName]]</td> 226 <td class="center" style="width: 5%">[[genderName]]</td>
196 - <td class="center" style="width: 5%">[[retail_price]]</td>  
197 - <td class="center" style="width: 5%">[[sales_price]]</td>  
198 - <td class="center" style="width: 5%">[[return_coin]]</td>  
199 - <td class="center" style="width: 5%">[[status]]</td>  
200 - <td style="width: 15%">  
201 - [[if founder_name]]  
202 - <p>[[founder_name]]</p>  
203 - [[/if]]  
204 - [[if updateTime]]  
205 - <p>[[updateTime]]</p>  
206 - [[/if]] 227 + <td class="center retailPrice" style="width: 5%">[[retailPrice]]</td>
  228 + <td class="center salesPrice" style="width: 5%">[[salesPrice]]</td>
  229 + <td class="center returnYohoCoin" style="width: 5%">[[productPrice.returnCoin]]</td>
  230 + <td class="center coinStatus" style="width: 8%">[[statusName]]</td>
  231 + <td style="width: 12%">
  232 + [[if productPrice.founder]]<p>[[productPrice.founder]]</p>[[/if]]
  233 + [[if productPrice.updateTime]]<p>[[productPrice.updateTime]]</p>[[/if]]
207 </td> 234 </td>
  235 + [[if productPrice.coinStatus != 1]]
208 <td class="center" style="width: 5%"><button type="button" class="btn btn-info btn-sm btn-modify">修改</button></td> 236 <td class="center" style="width: 5%"><button type="button" class="btn btn-info btn-sm btn-modify">修改</button></td>
  237 + [[/if]]
209 </tr> 238 </tr>
210 239
211 <tr class="dataForEditor"> 240 <tr class="dataForEditor">
212 <td colspan="9" style="padding: 0"> 241 <td colspan="9" style="padding: 0">
213 <table> 242 <table>
214 <tr class="center"> 243 <tr class="center">
215 - <td width="50%"><b>反币时间</b></td>  
216 - <td><b>返回金币</b></td>  
217 - <td><b>审核人</b></td>  
218 - <td><b>操作</b></td> 244 + <!--td width="50%"><b>反币时间</b></td-->
  245 + <td width="40%"><b>返回YOHO</b></td>
  246 + <td width="40%"><b>审核人</b></td>
  247 + <td width="20%"><b>操作</b></td>
219 </tr> 248 </tr>
220 <tr> 249 <tr>
221 - <td> 250 + <td style="display: none">
222 <div class="radio" style="margin-top: 0"> 251 <div class="radio" style="margin-top: 0">
223 - <label>  
224 - <input type="radio" name="returnCoinTime" value="option1" checked>  
225 - 永久  
226 - </label> 252 + <label><input type="radio" name="returnCoinTime" value="option1" checked>永久</label>
227 </div> 253 </div>
228 <div class="radio" style="margin-bottom: 0"> 254 <div class="radio" style="margin-bottom: 0">
229 <label> 255 <label>
@@ -235,17 +261,22 @@ @@ -235,17 +261,22 @@
235 </label> 261 </label>
236 </div> 262 </div>
237 </td> 263 </td>
238 - <td class="center"><input type="text" class="form-control" placeholder="返回yoho币" value="[[return_coin]]"></td>  
239 <td class="center"> 264 <td class="center">
240 - <select class="form-control">  
241 - <option>1</option>  
242 - <option>2</option>  
243 - <option>3</option>  
244 - <option>4</option>  
245 - <option>5</option> 265 + <input type="text" class="form-control center editor-yohoCoin" placeholder="YOHO币数量" value="[[productPrice.returnCoin]]" style="width: 100px">
  266 + </td>
  267 + <td class="center">
  268 + <select class="form-control center editor-auditor" style="width: 150px">
  269 + <option value="">-- 请选择审核人 --</option>
  270 + <option value="2965">Tracy</option>
  271 + <option value="10235">David Wong</option>
246 </select> 272 </select>
247 </td> 273 </td>
248 - <td class="center"><button type="submit" class="btn btn-primary btn-sm">保存</button></td> 274 + <td class="center">
  275 + <button type="submit" class="btn btn-primary btn-sm btn-save" data-productskn="[[productSkn]]">保存</button>
  276 + </td>
  277 + </tr>
  278 + <tr>
  279 + <td class="editorTip" colspan="3">* 提示:若返币YOHO币金额&nbsp;&nbsp;<b>大于等于</b>&nbsp;&nbsp;销售价的20%,审核人必须填写,审核通过后才能进入该状态。</td>
249 </tr> 280 </tr>
250 </table> 281 </table>
251 </td> 282 </td>
@@ -254,5 +285,30 @@ @@ -254,5 +285,30 @@
254 </div> 285 </div>
255 </script> 286 </script>
256 287
  288 +<script id="yohoCoinImportResultTable" type="text/template">
  289 + <table class="table table-striped table-bordered" align="center">
  290 + <thead>
  291 + <tr>
  292 + <th>SKN</th>
  293 + <th>品牌</th>
  294 + <th>吊牌价</th>
  295 + <th>反币金额</th>
  296 + <th>操作</th>
  297 + </tr>
  298 + </thead>
  299 + <tbody>
  300 + [[each data as item _index]]
  301 + <tr>
  302 + <td>[[item.productSkn]]</td>
  303 + <td>[[item.brandName]]</td>
  304 + <td>[[item.retailPrice]]</td>
  305 + <td>[[item.returnCoin]]</td>
  306 + <td><a href="javascript:;" class="btn btn-sm btn-danger btn-delete-yohoCoin" data-index="[[_index]]">删除</a></td>
  307 + </tr>
  308 + [[/each]]
  309 + </tbody>
  310 + </table>
  311 +</script>
  312 +
257 </body> 313 </body>
258 </html> 314 </html>
  1 +<!DOCTYPE html>
  2 +<html>
  3 +<head lang="en">
  4 + <meta charset="UTF-8">
  5 + <title></title>
  6 +</head>
  7 +<body>
  8 +
  9 +<div class="pageheader">
  10 + <div class="media">
  11 + <div class="pageicon pull-left">
  12 + <i class="fa fa-th-list"></i>
  13 + </div>
  14 + {{#pagetitle}}
  15 + <div class="media-body">
  16 + <ul class="breadcrumb">
  17 + <li><a href=""><i class="glyphicon glyphicon-home"></i></a></li>
  18 + <li><a href="">{{level1title}}</a></li>
  19 + <li>{{level2title}}</li>
  20 + </ul>
  21 + <div>
  22 + <div style="width: 30%;float: left;">
  23 + <h4>{{level3title}}</h4>
  24 + </div>
  25 + </div>
  26 + </div>
  27 + {{/pagetitle}}
  28 + </div>
  29 +</div>
  30 +
  31 +<div class="contentpanel">
  32 + <div id="yohoCoinSearch" class="panel panel-default" style="margin-bottom:10px;">
  33 + {{# filter}}
  34 + <div class="panel-body">
  35 + <div class="row">
  36 + {{# skn}}
  37 + <div class="panel-col">
  38 + <input id="skn" class="form-control panel-input height40" type="text" placeholder="请输入SKN" onkeyup="this.value=this.value.replace(/\D/gi,'')">
  39 + </div>
  40 + {{/ skn}}
  41 +
  42 + {{# store}}
  43 + <div class="panel-col">
  44 + <select name="shop" id="shop" tabindex="-1" title="" class="form-control">
  45 + <option value="-1">请选择店铺</option>
  46 + </select>
  47 + </div>
  48 + {{/ store}}
  49 +
  50 + {{# brand}}
  51 + <div class="panel-col">
  52 + <select name="brand" id="brand" tabindex="-1" title="" class="form-control">
  53 + <option value="-1">请选择品牌</option>
  54 + </select>
  55 + </div>
  56 + {{/ brand}}
  57 +
  58 + {{# supplier}}
  59 + <div class="panel-col">
  60 + <select name="supplier" id="supplier" tabindex="-1" title="" class="form-control">
  61 + <option value="-1">请选择供应商</option>
  62 + </select>
  63 + </div>
  64 + {{/ supplier}}
  65 +
  66 + {{# gender}}
  67 + <div class="panel-col">
  68 + <select name="gender" id="gender" tabindex="-1" title="" class="form-control">
  69 + <option value="-1">选择性别</option>
  70 + <option value="1"></option>
  71 + <option value="2"></option>
  72 + <option value="3">通用</option>
  73 + </select>
  74 + </div>
  75 + {{/ gender}}
  76 +
  77 + {{# sortTree}}
  78 + <div class="panel-col2">
  79 + <div id="sortTree"></div>
  80 + </div>
  81 + {{/ sortTree}}
  82 +
  83 + {{# returnCoinTime}}
  84 + <div class="panel-col form-inline" style="width: auto">
  85 + <div class="form-group" style="margin-right: 0">
  86 + <label>反币时间:</label>
  87 + <input type="text" class="form-control" jsaction="date:end:endDate" id="startDate" placeholder="开始时间">
  88 + </div>
  89 + <label>~</label>
  90 + <div class="form-group">
  91 + <input type="text" class="form-control" jsaction="date:start:startDate" id="endDate" placeholder="结束时间">
  92 + </div>
  93 + </div>
  94 + {{/ returnCoinTime}}
  95 +
  96 + <div class="panel-col" style="width: auto">
  97 + <a id="filter-btn" href="javascript:;" class="btn btn-info">筛选</a>
  98 + <a id="all-btn" href="javascript:;" class="btn btn-info">全部</a>
  99 + </div>
  100 + </div>
  101 + </div>
  102 + {{/ filter}}
  103 + </div>
  104 +
  105 + <div class="panel">
  106 + <ul id="yohoCoinNav" class="nav nav-pills" style="margin-bottom: 10px">
  107 + <li data-status="1" class="active"><a href="#">待审核</a></li>
  108 + <li data-status="2"><a href="#">通过</a></li>
  109 + <li data-status="3"><a href="#">驳回</a></li>
  110 + <li data-status=""><a href="#">全部</a></li>
  111 + </ul>
  112 +
  113 + <div class="dataTables_wrapper no-footer" id="yohoCoinAudit_table"></div>
  114 + </div>
  115 +</div>
  116 +
  117 +<input type="hidden" id="gridurl" value="{{gridurl}}">
  118 +
  119 +</body>
  120 +</html>
@@ -38,7 +38,7 @@ @@ -38,7 +38,7 @@
38 <div class="col-sm-10"> 38 <div class="col-sm-10">
39 <input type="hidden" name="" value="[[id]]" id="id" class="form-control" pattern="" title=""> 39 <input type="hidden" name="" value="[[id]]" id="id" class="form-control" pattern="" title="">
40 <select id="parentId" value="[[parentId]]" class="form-control"> 40 <select id="parentId" value="[[parentId]]" class="form-control">
41 - <option value="-1">请选择分类</option> 41 + <option value="0">请选择分类</option>
42 </select> 42 </select>
43 </div> 43 </div>
44 </div> 44 </div>
@@ -53,7 +53,7 @@ @@ -53,7 +53,7 @@
53 <div class="form-group"> 53 <div class="form-group">
54 <label for="orderBy" class="col-sm-2 control-label">排序:</label> 54 <label for="orderBy" class="col-sm-2 control-label">排序:</label>
55 <div class="col-sm-10"> 55 <div class="col-sm-10">
56 - <input type="number" value="[[orderBy]]" name="content" id="orderBy" placeholder="排序" required="required" class="form-control"> 56 + <input type="number" value="[[orderBy||0]]" name="content" id="orderBy" placeholder="排序" required="required" class="form-control">
57 </div> 57 </div>
58 </div> 58 </div>
59 59
@@ -149,7 +149,7 @@ @@ -149,7 +149,7 @@
149 <li class="cover-image-item image-list" data-index=[[_index]]> 149 <li class="cover-image-item image-list" data-index=[[_index]]>
150 <div class="goods-img"> 150 <div class="goods-img">
151 <a class="fileinput-button-icon" href="javascript:void(0);"> 151 <a class="fileinput-button-icon" href="javascript:void(0);">
152 - <img src="[[_item]]"> 152 + <img src="[[_item.replace(/(gif|png|jpg|jpeg)\?[^"]*/g,'$1')]]">
153 </a> 153 </a>
154 <i class="remove-item-btn remove1 glyphicon glyphicon-remove-circle" data-index="[[_index]]"></i> 154 <i class="remove-item-btn remove1 glyphicon glyphicon-remove-circle" data-index="[[_index]]"></i>
155 </div> 155 </div>
@@ -97,7 +97,11 @@ @@ -97,7 +97,11 @@
97 <label class="col-sm-2 control-label">封面图:<span class="red">*</span> </label> 97 <label class="col-sm-2 control-label">封面图:<span class="red">*</span> </label>
98 98
99 <div class="col-sm-8"> 99 <div class="col-sm-8">
  100 +<<<<<<< HEAD
100 <input type="file" name="coverImage" id="coverImage" value="[[coverImage]]" required placeholder="封面图"/> 101 <input type="file" name="coverImage" id="coverImage" value="[[coverImage]]" required placeholder="封面图"/>
  102 +=======
  103 + <input type="file" name="coverImage" id="coverImage" required="required" value="[[coverImage]]" />
  104 +>>>>>>> develop
101 </div> 105 </div>
102 </div> 106 </div>
103 <div class="form-group"> 107 <div class="form-group">
@@ -6,8 +6,8 @@ @@ -6,8 +6,8 @@
6 <div class="media-body"> 6 <div class="media-body">
7 <ul class="breadcrumb"> 7 <ul class="breadcrumb">
8 <li><a href=""><i class="glyphicon glyphicon-home"></i></a></li> 8 <li><a href=""><i class="glyphicon glyphicon-home"></i></a></li>
9 - <li><a href="">商品管理</a></li>  
10 - <li>资讯管理</li> 9 + <li><a href="">资讯管理</a></li>
  10 + <li>资讯列表管理</li>
11 </ul> 11 </ul>
12 12
13 <div> 13 <div>
@@ -141,7 +141,7 @@ @@ -141,7 +141,7 @@
141 <div class="form-group"> 141 <div class="form-group">
142 <label for="coverImg" class="col-sm-2 control-label">上传封面图:</label> 142 <label for="coverImg" class="col-sm-2 control-label">上传封面图:</label>
143 <div class="col-sm-8" id="colorUrlBox"> 143 <div class="col-sm-8" id="colorUrlBox">
144 - <input type="file" id="coverImg" name="coverImg" value="[[coverImg]]"> 144 + <input type="file" id="coverImg" name="coverImg" required="required" value="[[coverImg]]">
145 </div> 145 </div>
146 </div> 146 </div>
147 147
@@ -162,7 +162,7 @@ @@ -162,7 +162,7 @@
162 <div class="goods-img"> 162 <div class="goods-img">
163 <a class="fileinput-button-icon" href="javascript:void(0);">+</a> 163 <a class="fileinput-button-icon" href="javascript:void(0);">+</a>
164 164
165 - <input type="file" class="goods-img-upload picfile" id="picfile" name="picfile"></div> 165 + <input type="file" class="goods-img-upload picfile" required="required" id="picfile" name="picfile"></div>
166 </li> 166 </li>
167 167
168 </ul> 168 </ul>
@@ -33,7 +33,7 @@ @@ -33,7 +33,7 @@
33 </div> 33 </div>
34 34
35 <div class="panel-col"> 35 <div class="panel-col">
36 - <select id="maxSortId" class="form-control"> 36 + <select id="maxSortId" class="form-control" >
37 <option value="-1">请选择分类</option> 37 <option value="-1">请选择分类</option>
38 </select> 38 </select>
39 </div> 39 </div>
@@ -82,7 +82,7 @@ @@ -82,7 +82,7 @@
82 <label for="classifyId" class="col-sm-2 control-label">标签分类:</label> 82 <label for="classifyId" class="col-sm-2 control-label">标签分类:</label>
83 <div class="col-sm-10"> 83 <div class="col-sm-10">
84 <input type="hidden" name="" value="[[id]]" id="id" class="form-control" pattern="" title=""> 84 <input type="hidden" name="" value="[[id]]" id="id" class="form-control" pattern="" title="">
85 - <select id="classifyId" value="[[classifyId]]" class="form-control"> 85 + <select id="classifyId" value="[[classifyId]]" required="required" class="form-control">
86 <option value="-1">请选择分类</option> 86 <option value="-1">请选择分类</option>
87 </select> 87 </select>
88 </div> 88 </div>