Authored by dongjunjie

Merge branch 'develop' of http://git.dev.yoho.cn/platform/yohobuy-portal-fe into develop

@@ -70,6 +70,7 @@ var $ = require('jquery'), @@ -70,6 +70,7 @@ var $ = require('jquery'),
70 detailtoast:function(obj) { 70 detailtoast:function(obj) {
71 common.dialog({ 71 common.dialog({
72 title:"商品池详情", 72 title:"商品池详情",
  73 + width:"80%",
73 content:'<div id="faGrid" style="height: 600px;overflow:auto;"></div>', 74 content:'<div id="faGrid" style="height: 600px;overflow:auto;"></div>',
74 button:[{value:"添加", callback:function() { 75 button:[{value:"添加", callback:function() {
75 var e = new common.edit("#base-form"); 76 var e = new common.edit("#base-form");
@@ -106,7 +107,7 @@ var $ = require('jquery'), @@ -106,7 +107,7 @@ var $ = require('jquery'),
106 columns:[ 107 columns:[
107 {display:"ID", name:"id"}, 108 {display:"ID", name:"id"},
108 {display:"SKN",name:"productskn"}, 109 {display:"SKN",name:"productskn"},
109 - {display:"名称", name:""}, 110 + {display:"名称", name:"productName"},
110 {display:'品牌', name: "brandName"}, 111 {display:'品牌', name: "brandName"},
111 {display: '分类',name: "sortName"}, 112 {display: '分类',name: "sortName"},
112 {display: '操作', name: "", render: function(item) { 113 {display: '操作', name: "", render: function(item) {
@@ -41,7 +41,7 @@ var g = new common.grid({ @@ -41,7 +41,7 @@ var g = new common.grid({
41 g.init("/meterManage/tryInfo/index2"); 41 g.init("/meterManage/tryInfo/index2");
42 var modelLists = []; 42 var modelLists = [];
43 //根据productSkn获取所有试穿信息并拼接返回 43 //根据productSkn获取所有试穿信息并拼接返回
44 -var getAllInfo = function (productSkn, callback) { 44 +var getAllInfo = function (productSkn, maxSortId,callback) {
45 common.util.__ajax({url: '/meterManage/tryInfo/info1', data: {productSkn: productSkn}}, function (data) { 45 common.util.__ajax({url: '/meterManage/tryInfo/info1', data: {productSkn: productSkn}}, function (data) {
46 var feelIds = { 46 var feelIds = {
47 1: "合适", 47 1: "合适",
@@ -75,7 +75,12 @@ var getAllInfo = function (productSkn, callback) { @@ -75,7 +75,12 @@ var getAllInfo = function (productSkn, callback) {
75 callback(modelLists); 75 callback(modelLists);
76 new common.dropDown({ 76 new common.dropDown({
77 el: '.fit_size', 77 el: '.fit_size',
78 - ajax: 'sortsize' 78 + ajax: 'sortsize2',
  79 + params: function(){
  80 + return {
  81 + "sortId" : maxSortId
  82 + };
  83 + }
79 }); 84 });
80 }, true); 85 }, true);
81 }; 86 };
@@ -102,7 +107,7 @@ var getNewLists = function (modelLists, callback) { @@ -102,7 +107,7 @@ var getNewLists = function (modelLists, callback) {
102 //详情模态 107 //详情模态
103 var Bll = { 108 var Bll = {
104 toast: function (url, item) { 109 toast: function (url, item) {
105 - getAllInfo(item.productSkn, function (data) { 110 + getAllInfo(item.productSkn, item.maxSortId,function (data) {
106 var a = new common.dialog({ 111 var a = new common.dialog({
107 title: "试穿信息", 112 title: "试穿信息",
108 width: '80%', 113 width: '80%',
  1 +/**
  2 + * Created by JiangMin on 2016/3/17.
  3 + * 模特管理
  4 + */
  5 +var $ = require('jquery');
  6 +var common = require('../common/common');
  7 +//日期插件
  8 +$('.hasDatepicker').fdatepicker({
  9 + format: 'yyyy-mm-dd'
  10 +});
  11 +/**
  12 + * 列表显示数据
  13 + * @type {common.grid}
  14 + */
  15 +var g = new common.grid({
  16 + el: '#content-list',
  17 + hash: false,
  18 + //查询参数
  19 + parms: function () {
  20 + return {
  21 + modelName: common.util.__input('content-filter1'),
  22 + beginTime:((new Date($('#beginTime').val())).getTime())/1000,
  23 + endTime: ((new Date($('#endTime').val())).getTime())/1000,
  24 + modelType:parseInt($("#aa").val()),
  25 + status: parseInt($("#bb").val())
  26 + };
  27 + },
  28 + //列表显示
  29 + columns: [
  30 + {display: "ID", name: "id"},
  31 + {display: "姓名", name: "modelName"},
  32 + {
  33 + display: "头像", name: "avatar", render: function (item) {
  34 + return '<img src="' + item.avatar + '" width="100" height="60"/>'
  35 + }
  36 + },//图片显示
  37 + {display: "身高", name: "height"},
  38 + {display: "体重", name: "weight"},
  39 + {
  40 + display: "胸围", render: function (item) {
  41 + var a = item.vitalStatistics.split(/[,|/]/g);
  42 + return a[0];
  43 + }
  44 + },
  45 + {
  46 + display: "腰围", render: function (item) {
  47 + var a = item.vitalStatistics.split(/[,|/]/g);
  48 + return a[1];
  49 + }
  50 + },
  51 + {
  52 + display: "臀围", render: function (item) {
  53 + var a = item.vitalStatistics.split(/[,|/]/g);
  54 + return a[2];
  55 + }
  56 + },
  57 + {
  58 + display: "创建时间", name: "createTime",
  59 + render: function (item) {
  60 + var t = new Date(item.createTime * 1000);
  61 + var formatted = common.util.__dateFormat(t, "yyyy-MM-dd hh:mm:ss");
  62 + return "<p>" + formatted + "</p>";
  63 + }
  64 + },
  65 + {
  66 + display: "操作", name: "", render: function (item) {
  67 + var arr = [];
  68 + arr.push('<a class="btn btn-info update" data-index="' + item.__index + '">修改</a>');
  69 + arr.push('<a class="btn btn-danger delete" data-index="' + item.__index + '">删除</a>');
  70 + return arr.join('');
  71 + }
  72 + }
  73 + ]
  74 +});
  75 +g.init("/meterManage/tryModel/index1");
  76 +
  77 +var Bll = {
  78 + toast: function (url, item, hint) {
  79 + var e = new common.edit("#baseform", {
  80 + bucket: "modelCard"//真实的
  81 + });
  82 + //验证身高
  83 + e.on("validate", function () {
  84 + var height = $.trim($("#height").val());
  85 + if (height>250) {
  86 + return "身高值应小于250"
  87 + }
  88 + return true;
  89 + });
  90 + //验证体重
  91 + e.on("validate", function () {
  92 + var weight = $.trim($("#weight").val());
  93 + if (weight>200) {
  94 + return "体重值应小于200"
  95 + }
  96 + return true;
  97 + });
  98 + //验证胸围
  99 + e.on("validate", function () {
  100 + var Bust = $.trim($("#Bust").val());
  101 + if (Bust>200) {
  102 + return "胸围值应小于200"
  103 + }
  104 + return true;
  105 + });
  106 + //验证腰围
  107 + e.on("validate", function () {
  108 + var waist = $.trim($("#waist").val());
  109 + if (waist>200) {
  110 + return "腰围值应小于200"
  111 + }
  112 + return true;
  113 + });
  114 + //验证臀围
  115 + e.on("validate", function () {
  116 + var hips = $.trim($("#hips").val());
  117 + if (hips>200) {
  118 + return "臀围值应小于200"
  119 + }
  120 + return true;
  121 + });
  122 + var a = common.dialog.confirm(hint,
  123 + common.util.__template2($("#template").html(), item),
  124 + function () {
  125 + e.submit(url, function (option) {
  126 + option.data.modelType = parseInt($("#aa").val());//模特类型,1拍摄模特,2试穿模特
  127 + option.data.status = 1;//模特状态,默认启用
  128 + option.data.height = parseInt($("#height").val());//模特身高
  129 + option.data.weight = parseInt($("#weight").val());//模特体重
  130 + option.data.status = parseInt($("#status").val());//模特状态,默认启用
  131 + option.data.vitalStatistics = $("#Bust").val() + '|' + $("#waist").val() + "|" + $("#hips").val();//模特三围,拼接字符串
  132 + //console.log("option.data", option.data);
  133 + //option.debug = true;//调试状态
  134 + option.success = function (res) {
  135 + //判断接口请求状态
  136 + if (res.data.code == '200') {
  137 + g.reload();//重新加载界面
  138 + a.close();//关闭模态框
  139 + }
  140 + else {
  141 + //提示出错信息
  142 + e.$tip(res.data.message);
  143 + }
  144 + };
  145 + option.error = function () {
  146 + };
  147 + });
  148 + return false;
  149 + });
  150 +
  151 + e.init();
  152 + }
  153 +};
  154 +
  155 +//添加模特--点击事件
  156 +$('#add-content').on('click', function () {
  157 + var item = {
  158 + "__state": "add"
  159 + };
  160 + Bll.toast('/meterManage/tryModel/addModel', item, "添加模特");
  161 +});
  162 +var STATUS = {
  163 + '1': "启用",
  164 + '2': "禁用"
  165 +};
  166 +
  167 +//修改模特--点击事件
  168 +$(document).on('click', '.update', function () {
  169 + var item = g.rows[$(this).data("index")];
  170 + item.__state = "update";
  171 + var a = item.vitalStatistics.split(/[,|/]/g);
  172 + item.Bust = a[0];
  173 + item.waist = a[1];
  174 + item.hips = a[2];
  175 + item.statusname = STATUS[item.status];
  176 + Bll.toast('/meterManage/tryModel/updateModel', item, "修改模特");
  177 +});
  178 +
  179 +//删除--点击事件
  180 +$(document).on('click', '.delete', function () {
  181 + var item = g.rows[$(this).data("index")];
  182 + common.dialog.confirm("警告",
  183 + "确认删除?",
  184 + function () {
  185 + item.status = 0;
  186 + common.util.__ajax({
  187 + url: '/meterManage/tryModel/updateModel',
  188 + data: item
  189 + }, function () {
  190 + g.reload(1);
  191 + });
  192 + });
  193 +});
  194 +//查询按钮--点击事件
  195 +$(document).on('click', '#filter-btn', function () {
  196 + g.reload(1);
  197 +});
  198 +
  199 +
  200 +
  201 +
@@ -10,47 +10,15 @@ new common.edit("#filter").init(); @@ -10,47 +10,15 @@ new common.edit("#filter").init();
10 new common.dropDown({el: "#isHot-filter"}); 10 new common.dropDown({el: "#isHot-filter"});
11 new common.dropDown({el: "#status-filter"}); 11 new common.dropDown({el: "#status-filter"});
12 new common.dropDown({el: "#source-filter"}); 12 new common.dropDown({el: "#source-filter"});
13 -new common.dropDown({el: "#version-filter"});  
14 new common.dropDown({el: "#clientType-filter"}); 13 new common.dropDown({el: "#clientType-filter"});
15 -new common.dropDown({el: "#clientType-filter"});  
16 -  
17 -var ENUM = {  
18 - status: {all: '全部', noReply: '未回复', replied: '已回复'},//全部  
19 - tips: {"all": 0, "noReply": 0, "replied": 0},  
20 - statusStr: {  
21 - 0: '未回复',  
22 - 1: '已回复'  
23 - }  
24 -}  
25 -  
26 -var t = new common.tab({  
27 - el: "#basicTab",  
28 - click: function () {  
29 - g.init('/suggest/getSuggestList');  
30 -  
31 - },  
32 - columns: [  
33 - {name: "all", display: "全部({all})"},  
34 - {name: "noReply", display: "未回复({noReply})"},  
35 - {name: "replied", display: "已回复({replied})"}  
36 - ]  
37 -}).init(ENUM.tips);  
38 -  
39 -// tab初始化  
40 -var loadTab = function () {  
41 - t.active = undefined;  
42 - setTimeout(function () {  
43 - common.util.__ajax({  
44 - url: "/base/goods/ajax/auditCount",  
45 - data: g.options.parms()  
46 - }, function (res) {  
47 - var __dt = $.extend({}, ENUM.tips, res.data);  
48 - t.init(__dt);  
49 - }, true);  
50 - }, 400);  
51 -}  
52 14
53 -loadTab(); 15 +common.util.__ajax({
  16 + url: '/suggest/getAllAppVersions',
  17 + data: {}
  18 +},function(res) {
  19 + $("#version-search").html(common.util.__template2($("#version-template").html(), res));
  20 + new common.dropDown({el: "#appVersion-filter"});
  21 +},true);
54 22
55 var g = new common.grid({ 23 var g = new common.grid({
56 el: "#basicTable", 24 el: "#basicTable",
@@ -62,17 +30,22 @@ var g = new common.grid({ @@ -62,17 +30,22 @@ var g = new common.grid({
62 startTime: common.util.__input('startTime'), 30 startTime: common.util.__input('startTime'),
63 endTime: common.util.__input('endTime'), 31 endTime: common.util.__input('endTime'),
64 isHot: common.util.__input('isHot-filter'), 32 isHot: common.util.__input('isHot-filter'),
65 - appVersion: common.util.__input('appVersion-filter') 33 + appVersion: common.util.__input('appVersion-filter'),
  34 + //status:t.active
66 }; 35 };
67 }, 36 },
68 columns: [ 37 columns: [
69 {display: " ", type:"checkbox"}, 38 {display: " ", type:"checkbox"},
70 {display: "UID", name: "uid"}, 39 {display: "UID", name: "uid"},
71 - {display: "来源", name: "clientType", width: "56px"},  
72 - {display: "版本号", name: "appVersion", width:"56px"}, 40 + {display: "来源", name: "clientType", width: "56px", render: function(item) {
  41 + if(item.clientType) return item.clientType;
  42 + return "未知";
  43 + }},
  44 + {display: "版本号", name: "appVersion", style:"min-width: 56px;"},
73 {display: "图片", name: "", render: function(item) { 45 {display: "图片", name: "", render: function(item) {
  46 + var url = item.imageUrl ? item.imageUrl.substring(0, item.imageUrl.indexOf("?")) : "";
74 if(item.imageUrl) { 47 if(item.imageUrl) {
75 - return '<img src="' + item.imageUrl + '" height="70px" width="100px" />'; 48 + return '<a href="'+ url +'" target="_blank"><img src="' + item.imageUrl + '" height="60px" width="60px" /></a>';
76 } 49 }
77 }}, 50 }},
78 {display: "反馈内容", name: "content", width:"20%"}, 51 {display: "反馈内容", name: "content", width:"20%"},
@@ -87,7 +60,7 @@ var g = new common.grid({ @@ -87,7 +60,7 @@ var g = new common.grid({
87 return "已发送"; 60 return "已发送";
88 } 61 }
89 }}, 62 }},
90 - {display: "状态",name: "", width:"56px;",render: function(item) { 63 + {display: "状态",name: "", width:"70px;",render: function(item) {
91 if (item.status == "0") { 64 if (item.status == "0") {
92 return "未回复"; 65 return "未回复";
93 } else if (item.status == "1") { 66 } else if (item.status == "1") {
@@ -118,7 +91,7 @@ var g = new common.grid({ @@ -118,7 +91,7 @@ var g = new common.grid({
118 }); 91 });
119 92
120 g.init("/suggest/getSuggestList"); 93 g.init("/suggest/getSuggestList");
121 -console.log(g); 94 +//console.log(g);
122 95
123 var Bll = { 96 var Bll = {
124 toast:function(url, item, hint) { 97 toast:function(url, item, hint) {
@@ -142,6 +115,30 @@ var Bll = { @@ -142,6 +115,30 @@ var Bll = {
142 }); 115 });
143 }); 116 });
144 e.init(); 117 e.init();
  118 + },
  119 + batch:function(url, hint) {
  120 + var ids = [];
  121 + $.each(g.selected,function (i, value) {
  122 + ids.push(value.id);
  123 + });
  124 + if(ids.length) {
  125 + if(url.indexOf("Publish") != -1) {
  126 + common.dialog.confirm("发送确认", "是否确认发送?", function () {
  127 + common.util.__ajax({
  128 + url: url,
  129 + data: {
  130 + id: ids.join(",")
  131 + }
  132 + }, function () {
  133 + g.reload();
  134 + });
  135 + });
  136 + } else {
  137 + window.open("/ajax/down?queryConf=" + JSON.stringify({"id":ids.join(",")}) + "&type=suggestExport");
  138 + }
  139 + } else {
  140 + util.__tip(hint,"warning");
  141 + }
145 } 142 }
146 }; 143 };
147 144
@@ -195,7 +192,14 @@ $(document).on('click', '.delBtn',function() { @@ -195,7 +192,14 @@ $(document).on('click', '.delBtn',function() {
195 }); 192 });
196 }); 193 });
197 194
  195 +$(document).on('click', '#batchSend', function() {//批量发送
  196 + Bll.batch("/suggest/batchPublishSuggest", "请选择要发送的回复!");
  197 +});
  198 +
  199 +$(document).on('click', '#batchExport', function() {//批量导出
  200 + Bll.batch("/suggest/batchExportSuggest", "请选择要导出的数据!");
  201 +});
  202 +
198 $(document).on('click', '#filter-btn', function() { 203 $(document).on('click', '#filter-btn', function() {
199 g.reload(1); 204 g.reload(1);
200 - loadTab();  
201 }); 205 });
@@ -4,6 +4,10 @@ @@ -4,6 +4,10 @@
4 */ 4 */
5 var $ = require('jquery'); 5 var $ = require('jquery');
6 var common = require('../common/common'); 6 var common = require('../common/common');
  7 +//日期插件
  8 +$('.hasDatepicker').fdatepicker({
  9 + format: 'yyyy-mm-dd'
  10 +});
7 /** 11 /**
8 * 列表显示数据 12 * 列表显示数据
9 * @type {common.grid} 13 * @type {common.grid}
@@ -53,22 +57,23 @@ var g = new common.grid({ @@ -53,22 +57,23 @@ var g = new common.grid({
53 }, 57 },
54 {display: "鞋码", name: "shoeSize"}, 58 {display: "鞋码", name: "shoeSize"},
55 {display: "衣服尺码", name: "dressSize"}, 59 {display: "衣服尺码", name: "dressSize"},
56 -  
57 { 60 {
58 - display: "模特卡", name: "modelCard ",hidden:parseInt($("#aa").val())==2 ,render: function (item) {  
59 - return '<img src="' + item.modelCard + '" width="100" height="60"/>' 61 + display: "模特卡", name: "modelCard ", render: function (item) {
  62 + return '<img src="' + item.modelCard + '" width="100" height="60"/>'
60 } 63 }
61 }, 64 },
62 { 65 {
63 display: "状态", name: "status", render: function (item) { 66 display: "状态", name: "status", render: function (item) {
64 if (item.status == 1) { 67 if (item.status == 1) {
65 - return status = "启用" 68 + return "启用"
66 } 69 }
67 else { 70 else {
68 - return status = "禁用" 71 + return "禁用"
69 } 72 }
  73 +
70 } 74 }
71 }, 75 },
  76 +
72 { 77 {
73 display: "操作", name: "", render: function (item) { 78 display: "操作", name: "", render: function (item) {
74 var arr = []; 79 var arr = [];
@@ -95,6 +100,46 @@ var Bll = { @@ -95,6 +100,46 @@ var Bll = {
95 } 100 }
96 return true; 101 return true;
97 }); 102 });
  103 + //验证身高
  104 + e.on("validate", function () {
  105 + var height = $.trim($("#height").val());
  106 + if (height>250) {
  107 + return "身高值应小于250"
  108 + }
  109 + return true;
  110 + });
  111 + //验证体重
  112 + e.on("validate", function () {
  113 + var weight = $.trim($("#weight").val());
  114 + if (weight>200) {
  115 + return "体重值应小于200"
  116 + }
  117 + return true;
  118 + });
  119 + //验证胸围
  120 + e.on("validate", function () {
  121 + var Bust = $.trim($("#Bust").val());
  122 + if (Bust>200) {
  123 + return "胸围值应小于200"
  124 + }
  125 + return true;
  126 + });
  127 + //验证腰围
  128 + e.on("validate", function () {
  129 + var waist = $.trim($("#waist").val());
  130 + if (waist>200) {
  131 + return "腰围值应小于200"
  132 + }
  133 + return true;
  134 + });
  135 + //验证臀围
  136 + e.on("validate", function () {
  137 + var hips = $.trim($("#hips").val());
  138 + if (hips>200) {
  139 + return "臀围值应小于200"
  140 + }
  141 + return true;
  142 + });
98 var a = common.dialog.confirm(hint, 143 var a = common.dialog.confirm(hint,
99 common.util.__template2($("#template").html(), item), 144 common.util.__template2($("#template").html(), item),
100 function () { 145 function () {
@@ -103,8 +148,14 @@ var Bll = { @@ -103,8 +148,14 @@ var Bll = {
103 option.data.status = 1;//模特状态,默认启用 148 option.data.status = 1;//模特状态,默认启用
104 option.data.height = parseInt($("#height").val());//模特身高 149 option.data.height = parseInt($("#height").val());//模特身高
105 option.data.weight = parseInt($("#weight").val());//模特体重 150 option.data.weight = parseInt($("#weight").val());//模特体重
106 - option.data.status = 1;//模特状态,默认启用 151 + if (item.__state == 'add') {
  152 + option.data.status = 1;//模特状态,默认启用
  153 + }
  154 + else {
  155 + option.data.status = parseInt($("#status").val());//模特状态,默认启用
  156 + }
107 option.data.vitalStatistics = $("#Bust").val() + '|' + $("#waist").val() + "|" + $("#hips").val();//模特三围,拼接字符串 157 option.data.vitalStatistics = $("#Bust").val() + '|' + $("#waist").val() + "|" + $("#hips").val();//模特三围,拼接字符串
  158 + console.log("option.data", option.data);
108 //option.debug = true;//调试状态 159 //option.debug = true;//调试状态
109 option.success = function (res) { 160 option.success = function (res) {
110 //判断接口请求状态 161 //判断接口请求状态
@@ -129,16 +180,25 @@ var Bll = { @@ -129,16 +180,25 @@ var Bll = {
129 180
130 //添加模特--点击事件 181 //添加模特--点击事件
131 $('#add-content').on('click', function () { 182 $('#add-content').on('click', function () {
132 - var item = {}; 183 + var item = {
  184 + "__state": "add"
  185 + };
133 Bll.toast('/shotManage/model/addModel', item, "添加模特"); 186 Bll.toast('/shotManage/model/addModel', item, "添加模特");
134 }); 187 });
  188 +var STATUS = {
  189 + '1': "启用",
  190 + '2': "禁用"
  191 +};
  192 +
135 //修改模特--点击事件 193 //修改模特--点击事件
136 $(document).on('click', '.update', function () { 194 $(document).on('click', '.update', function () {
137 var item = g.rows[$(this).data("index")]; 195 var item = g.rows[$(this).data("index")];
  196 + item.__state = "update";
138 var a = item.vitalStatistics.split(/[,|/]/g); 197 var a = item.vitalStatistics.split(/[,|/]/g);
139 item.Bust = a[0]; 198 item.Bust = a[0];
140 item.waist = a[1]; 199 item.waist = a[1];
141 item.hips = a[2]; 200 item.hips = a[2];
  201 + item.statusname = STATUS[item.status];
142 Bll.toast('/shotManage/model/updateModel', item, "修改模特"); 202 Bll.toast('/shotManage/model/updateModel', item, "修改模特");
143 }); 203 });
144 //查询按钮--点击事件 204 //查询按钮--点击事件
@@ -8,6 +8,7 @@ var common = require('../common/common'); @@ -8,6 +8,7 @@ var common = require('../common/common');
8 $('.hasDatepicker').fdatepicker({ 8 $('.hasDatepicker').fdatepicker({
9 format: 'yyyy-mm-dd' 9 format: 'yyyy-mm-dd'
10 }); 10 });
  11 +
11 /** 12 /**
12 * 列表显示数据 13 * 列表显示数据
13 * @type {common.grid} 14 * @type {common.grid}
@@ -21,18 +22,18 @@ var g = new common.grid({ @@ -21,18 +22,18 @@ var g = new common.grid({
21 productSkn: common.util.__input('content-filter1'), 22 productSkn: common.util.__input('content-filter1'),
22 productSkc: common.util.__input('content-filter2'), 23 productSkc: common.util.__input('content-filter2'),
23 productSku: common.util.__input('content-filter3'), 24 productSku: common.util.__input('content-filter3'),
24 - startTime: common.util.__input('starttime'),  
25 - endTime: common.util.__input('endtime') 25 + startTime:((new Date($('#starttime').val())).getTime())/1000,
  26 + endTime: ((new Date($('#endtime').val())).getTime())/1000
26 }; 27 };
27 }, 28 },
28 //列表显示 29 //列表显示
29 columns: [ 30 columns: [
30 {display: "SKN", name: "productSkn"}, 31 {display: "SKN", name: "productSkn"},
31 { 32 {
32 - display: "最后上传时间", name: "updateTime", 33 + display: "最后上传时间", name: "lastAddTime",
33 render: function (item) { 34 render: function (item) {
34 - var t = new Date(item.updateTime * 1000);  
35 - var formatted = common.util.__dateFormat(t, "yyyy-MM-dd "); 35 + var t = new Date(item.lastAddTime * 1000);
  36 + var formatted = common.util.__dateFormat(t, "yyyy-MM-dd hh/mm/ss");
36 return "<p>" + formatted + "</p>"; 37 return "<p>" + formatted + "</p>";
37 } 38 }
38 }, 39 },
@@ -66,5 +66,21 @@ exports.res = [ @@ -66,5 +66,21 @@ exports.res = [
66 route:'/suggest/getAllAppVersions', 66 route:'/suggest/getAllAppVersions',
67 method:'POST', 67 method:'POST',
68 url:'/suggest/suggest/getAllAppVersions' 68 url:'/suggest/suggest/getAllAppVersions'
  69 + },
  70 + {
  71 + route:'/suggest/batchPublishSuggest',
  72 + method:'POST',
  73 + url:'/suggest/suggest/batchPublishSuggest',
  74 + params:[
  75 + {name: 'id', type: 'string'}
  76 + ]
  77 + },
  78 + {
  79 + route:'/suggest/batchExportSuggest',
  80 + method:'POST',
  81 + url:'/suggest/suggest/batchExportSuggest',
  82 + params:[
  83 + {name: 'id', type: 'string'}
  84 + ]
69 } 85 }
70 ]; 86 ];
1 -exports.domain = require('../config/common.js').domain; 1 +//exports.domain = require('../config/common.js').domain;
2 // exports.domain = "http://192.168.102.201:8082/platform"; 2 // exports.domain = "http://192.168.102.201:8082/platform";
3 -// exports.domain = "http://172.16.6.210:8083/platform"; 3 + exports.domain = "http://172.16.6.210:8083/platform";
4 4
5 exports.res = [ 5 exports.res = [
6 { 6 {
@@ -11,21 +11,24 @@ exports.res = [ @@ -11,21 +11,24 @@ exports.res = [
11 { 11 {
12 route: '/meterManage/tryModel/index',//访问路由 12 route: '/meterManage/tryModel/index',//访问路由
13 method: 'GET',//方法 13 method: 'GET',//方法
14 - view: 'pages/shotManage/model',//视图  
15 - src: '/shotManage/model',//控制层 14 + view: 'pages/meterManage/tryModel',//视图
  15 + src: '/meterManage/tryModel',//控制层
16 data: { 16 data: {
  17 + search:false,
17 type: 2, 18 type: 2,
18 - typeName:'试穿模特管理' 19 + typeName:'试穿模特管理',
  20 + status:1
19 } 21 }
20 }, 22 },
21 //api请求数据 23 //api请求数据
22 { 24 {
23 - route: '/shotManage/model/getAllModels', 25 + route: '/meterManage/tryModel/index1',
24 method: 'POST', 26 method: 'POST',
25 url: '/model/queryModelList', 27 url: '/model/queryModelList',
26 params: [ 28 params: [
27 - {name: 'englishName', type: 'string'},//英文名  
28 {name: 'modelName', type: 'string'},//名称 29 {name: 'modelName', type: 'string'},//名称
  30 + {name: 'beginTime', type: 'Number'},
  31 + {name: 'endTime', type: 'Number'},
29 {name: 'status', type: 'Number'},//模特状态:0 禁用 1 启用 32 {name: 'status', type: 'Number'},//模特状态:0 禁用 1 启用
30 {name: 'page', type: 'Number'}, 33 {name: 'page', type: 'Number'},
31 {name: 'size', type: 'Number'} 34 {name: 'size', type: 'Number'}
@@ -33,38 +36,29 @@ exports.res = [ @@ -33,38 +36,29 @@ exports.res = [
33 }, 36 },
34 //新增模特 37 //新增模特
35 { 38 {
36 - route: '/shotManage/model/addModel', 39 + route: '/meterManage/tryModel/addModel',
37 method: 'POST', 40 method: 'POST',
38 url: '/model/addModel', 41 url: '/model/addModel',
39 params: [ 42 params: [
40 - {name: 'englishName', type: 'string'},//英文名  
41 {name: 'height', type: 'Number'},//身高 43 {name: 'height', type: 'Number'},//身高
42 - {name: 'dressSize', type: 'string'},//穿衣尺码  
43 {name: 'modelName', type: 'string'},//名称 44 {name: 'modelName', type: 'string'},//名称
44 {name: 'modelType', type: 'Number'},//模特类型:1 拍摄模特 2 试穿模特 45 {name: 'modelType', type: 'Number'},//模特类型:1 拍摄模特 2 试穿模特
45 - {name: 'nationality', type: 'string'},//国籍  
46 {name: 'status', type: 'Number'},//模特状态:0 禁用 1 启用 46 {name: 'status', type: 'Number'},//模特状态:0 禁用 1 启用
47 - {name: 'shoeSize', type: 'string'},//鞋尺码  
48 {name: 'vitalStatistics', type: 'string'},//三围 47 {name: 'vitalStatistics', type: 'string'},//三围
49 {name: 'weight', type: 'Number'},//体重 48 {name: 'weight', type: 'Number'},//体重
50 - {name: 'avatar', type: 'string'},//头像  
51 - {name: 'modelCard', type: 'string'}//模特卡 49 + {name: 'avatar', type: 'string'}//头像
52 ] 50 ]
53 }, 51 },
54 //修改模特 52 //修改模特
55 { 53 {
56 - route: '/shotManage/model/updateModel', 54 + route: '/meterManage/tryModel/updateModel',
57 method: 'POST', 55 method: 'POST',
58 url: '/model/updateModel', 56 url: '/model/updateModel',
59 params: [ 57 params: [
60 {name: 'id', type: 'Number'},//主键 58 {name: 'id', type: 'Number'},//主键
61 - {name: 'englishName', type: 'string'},//英文名  
62 {name: 'height', type: 'Number'},//身高 59 {name: 'height', type: 'Number'},//身高
63 - {name: 'dressSize', type: 'string'},//穿衣尺码  
64 {name: 'modelName', type: 'string'},//名称 60 {name: 'modelName', type: 'string'},//名称
65 {name: 'modelType', type: 'Number'},//模特类型:1 拍摄模特 2 试穿模特 61 {name: 'modelType', type: 'Number'},//模特类型:1 拍摄模特 2 试穿模特
66 - {name: 'nationality', type: 'string'},//国籍  
67 - {name: 'shoeSize', type: 'string'},//鞋尺码  
68 {name: 'status', type: 'Number'},//模特状态:0 禁用 1 启用 62 {name: 'status', type: 'Number'},//模特状态:0 禁用 1 启用
69 {name: 'vitalStatistics', type: 'string'},//三围 63 {name: 'vitalStatistics', type: 'string'},//三围
70 {name: 'weight', type: 'Number'},//体重 64 {name: 'weight', type: 'Number'},//体重
@@ -67,6 +67,7 @@ @@ -67,6 +67,7 @@
67 <option value="2">SKU</option> 67 <option value="2">SKU</option>
68 <option value="3">SKC</option> 68 <option value="3">SKC</option>
69 </select> 69 </select>
  70 + <font color="red">要导入的数据类型必须和所选类型相同</font>
70 </div> 71 </div>
71 </div> 72 </div>
72 <div class="form-group"> 73 <div class="form-group">
  1 +<!--模特管理界面-->
  2 +<div class="pageheader">
  3 + <div class="media">
  4 + <div class="pageicon pull-left">
  5 + <i class="fa fa-th-list"></i>
  6 + </div>
  7 + <div class="media-body">
  8 + <ul class="breadcrumb">
  9 + <li><a href=""><i class="glyphicon glyphicon-home"></i></a></li>
  10 + <li><a href="">模特管理</a></li>
  11 + <li>模特管理</li>
  12 + </ul>
  13 + <div>
  14 + <div style="width: 30%;float: left;">
  15 + <h4>{{typeName}}</h4>
  16 + </div>
  17 + </div>
  18 + </div>
  19 + </div>
  20 +</div>
  21 +
  22 +<div class="contentpanel">
  23 + <div class="panel panel-default" style="...">
  24 + <div class="panel-heading">
  25 + <a class="btn btn-success " id="add-content"><i class="fa fa-plus"></i> 添加</a>
  26 + </div>
  27 + <div class="panel-body">
  28 + <div class="row">
  29 + <div class="panel-col2">
  30 + <input type="text" id="beginTime" class="form-control panel-input hasDatepicker " name="begin_time"
  31 + placeholder="开始时间" value="" >
  32 + </div>
  33 + <div class="panel-col2">
  34 + <input type="text" id="endTime" class="form-control panel-input hasDatepicker " name="end_time"
  35 + placeholder="结束时间" value="" >
  36 + </div>
  37 + <div class="col-xs-2 col-sm-2 col-md-2 col-lg-2">
  38 + <input type="text" value="" name="modelName" id="content-filter1" placeholder="姓名"
  39 + class="form-control">
  40 + </div>
  41 + <a id="filter-btn" href="javascript:;" class="btn btn-info">查询</a>
  42 + </div>
  43 + </div>
  44 + </div>
  45 + <div id="content-list"></div>
  46 + <input type="hidden" id="aa" value="{{type}}"/>
  47 + <input type="hidden" id="bb" value="{{status}}"/>
  48 +</div>
  49 +
  50 +<script type="text/template" id="template">
  51 + <div class="rows" id="baseform" >
  52 + <div class="form-group">
  53 + <label class="col-sm-2 control-label" for="avatar">头像</label>
  54 + <input type="hidden" value="[[id]]" id="id"/>
  55 +
  56 + <div class="col-sm-6">
  57 + <input type="file" value="[[avatar]]" class="form-control avatar" id="avatar" name="avatar" placeholder="头像" required="required"/>
  58 + </div>
  59 + </div>
  60 + <div class="form-group">
  61 + <label class="col-sm-2 control-label" for="modelName">姓名</label>
  62 +
  63 + <div class="col-sm-3">
  64 + <input type="text" value="[[modelName]]" class="form-control" id="modelName" placeholder="姓名" required="required"/>
  65 + </div>
  66 + </div>
  67 +
  68 + <div class="form-group">
  69 + <label class="col-sm-2 control-label" for="height">身高</label>
  70 +
  71 + <div class="col-sm-3">
  72 + <input type="number" value="[[height]]" class="form-control" id="height"
  73 + match="numbers" placeholder="身高(cm)" required="required"/>
  74 + </div>
  75 + <label class="col-sm-2 control-label" for="weight">体重</label>
  76 + <div class="col-sm-3">
  77 + <input type="number" value="[[weight]]" class="form-control" id="weight"
  78 + match="numbers" placeholder="体重(kg)" required="required"/>
  79 + </div>
  80 + </div>
  81 + <div class="form-group">
  82 + <label class="col-sm-2 control-label">三围</label>
  83 +
  84 + <div class="col-sm-3">
  85 + <input type="number" value="[[Bust]]" class="form-control" id="Bust"
  86 + match="numbers" placeholder="胸围(cm)" required="required"/>
  87 + </div>
  88 + <div class="col-sm-3">
  89 + <input type="number" value="[[waist]]" class="form-control" id="waist"
  90 + match="numbers" placeholder="腰围(cm)" required="required"/>
  91 + </div>
  92 + <div class="col-sm-3">
  93 + <input type="number" value="[[hips]]" class="form-control" id="hips"
  94 + match="numbers" placeholder="臀围(cm)" required="required"/>
  95 + </div>
  96 + </div>
  97 + </div>
  98 +</script>
@@ -54,12 +54,8 @@ @@ -54,12 +54,8 @@
54 <option value="Android">Android</option> 54 <option value="Android">Android</option>
55 </select> 55 </select>
56 </div> 56 </div>
57 - <div class="panel-col">  
58 - <select name="appVersion" id="appVersion-filter" tabindex="-1" title="" class="form-control">  
59 - <option value="">选择版本号</option>  
60 - <option value="N">未测量</option>  
61 - <option value="Y">已测量</option>  
62 - </select> 57 + <div class="panel-col" id="version-search">
  58 +
63 </div> 59 </div>
64 60
65 <div class="panel-col"> 61 <div class="panel-col">
@@ -71,7 +67,10 @@ @@ -71,7 +67,10 @@
71 </div> 67 </div>
72 </div> 68 </div>
73 <div class="panel-body nopadding"> 69 <div class="panel-body nopadding">
74 - <div class="dataTab_wrapper" id="basicTab"></div> 70 + <div class="dataTab_wrapper" id="basicTab">
  71 + <a href="javascript:void(0);" id="batchSend" style="margin-left: 10px;" class="btn btn-dark btn-xs pull-right">批量发送</a>
  72 + <a href="javascript:void(0);" id="batchExport" style="margin-left: 10px;" class="btn btn-dark btn-xs pull-right">批量导出</a>
  73 + </div>
75 <div class="dataTables_wrapper no-footer" id="basicTable"></div> 74 <div class="dataTables_wrapper no-footer" id="basicTable"></div>
76 </div> 75 </div>
77 </div> 76 </div>
@@ -86,4 +85,14 @@ @@ -86,4 +85,14 @@
86 </div> 85 </div>
87 </div><!-- form-group --> 86 </div><!-- form-group -->
88 </div> 87 </div>
  88 +</script>
  89 +
  90 +<script type="text/template" id="version-template">
  91 + <select name="appVersion" id="appVersion-filter" tabindex="-1" title="" class="form-control">
  92 + <option value="">选择版本号</option>
  93 + <option value=" "></option>
  94 + [[each data as item index]]
  95 + <option value="[[item]]">[[item]]</option>
  96 + [[/each]]
  97 + </select>
89 </script> 98 </script>
@@ -37,7 +37,7 @@ @@ -37,7 +37,7 @@
37 <div class="panel-col"> 37 <div class="panel-col">
38 <select name="status" id="status-filter" tabindex="-1" title="" 38 <select name="status" id="status-filter" tabindex="-1" title=""
39 class="form-control"> 39 class="form-control">
40 - <option value="">全部</option> 40 + <option value="-1">全部</option>
41 <option value="0">禁用</option> 41 <option value="0">禁用</option>
42 <option value="1">启用</option> 42 <option value="1">启用</option>
43 </select> 43 </select>
@@ -66,13 +66,16 @@ @@ -66,13 +66,16 @@
66 <div class="col-sm-3"> 66 <div class="col-sm-3">
67 <input type="text" value="[[modelName]]" class="form-control" id="modelName" placeholder="姓名" required="required"/> 67 <input type="text" value="[[modelName]]" class="form-control" id="modelName" placeholder="姓名" required="required"/>
68 </div> 68 </div>
  69 +
69 <label class="col-sm-2 control-label" for="englishName">英文名</label> 70 <label class="col-sm-2 control-label" for="englishName">英文名</label>
70 71
71 <div class="col-sm-3"> 72 <div class="col-sm-3">
72 <input type="text" value="[[englishName]]" class="form-control" id="englishName" placeholder="英文名" required="required"/> 73 <input type="text" value="[[englishName]]" class="form-control" id="englishName" placeholder="英文名" required="required"/>
73 </div> 74 </div>
74 75
  76 +
75 </div> 77 </div>
  78 +
76 <div class="form-group"> 79 <div class="form-group">
77 <label class="col-sm-2 control-label" for="nationality">国籍</label> 80 <label class="col-sm-2 control-label" for="nationality">国籍</label>
78 81
@@ -81,6 +84,7 @@ @@ -81,6 +84,7 @@
81 </div> 84 </div>
82 85
83 </div> 86 </div>
  87 +
84 <div class="form-group"> 88 <div class="form-group">
85 <label class="col-sm-2 control-label" for="height">身高</label> 89 <label class="col-sm-2 control-label" for="height">身高</label>
86 90
@@ -125,7 +129,6 @@ @@ -125,7 +129,6 @@
125 match="numbers" placeholder="臀围(cm)" required="required"/> 129 match="numbers" placeholder="臀围(cm)" required="required"/>
126 </div> 130 </div>
127 </div> 131 </div>
128 - [[if {{type}}==1]]  
129 <div class="form-group"> 132 <div class="form-group">
130 <label class="col-sm-2 control-label" for="modelCard">模特卡</label> 133 <label class="col-sm-2 control-label" for="modelCard">模特卡</label>
131 134
@@ -133,6 +136,15 @@ @@ -133,6 +136,15 @@
133 <input type="file" value="[[modelCard]]" class="form-control modelCard" id="modelCard" name="modelCard" placeholder="模特卡" required="required"/> 136 <input type="file" value="[[modelCard]]" class="form-control modelCard" id="modelCard" name="modelCard" placeholder="模特卡" required="required"/>
134 </div> 137 </div>
135 </div> 138 </div>
  139 + [[if __state=='update']]
  140 + <div class="form-group">
  141 + <label class="col-sm-2 control-label">状态</label>
  142 + <div class="col-sm-8">
  143 + <label style="cursor: pointer;"><input type="radio" name="status" value="1">启用</label>
  144 + <label style="cursor: pointer;"><input type="radio" name="status" value="2">禁用</label>
  145 + </div>
  146 + <input type="hidden" id="status" value="[[status]]" for="radio">
  147 + </div>
136 [[/if]] 148 [[/if]]
137 </div> 149 </div>
138 </script> 150 </script>
@@ -23,14 +23,14 @@ @@ -23,14 +23,14 @@
23 <div class="panel panel-default" style="..."> 23 <div class="panel panel-default" style="...">
24 <div class="panel-body"> 24 <div class="panel-body">
25 <div class="row"> 25 <div class="row">
26 - <!--<div class="panel-col2">-->  
27 - <!--<input type="text" id="starttime" class="form-control panel-input hasDatepicker" name="start_time"-->  
28 - <!--placeholder="开始时间" value="">-->  
29 - <!--</div>-->  
30 - <!--<div class="panel-col2">-->  
31 - <!--<input type="text" id="endtime" class="form-control panel-input hasDatepicker" name="end_time"-->  
32 - <!--placeholder="结束时间" value="">-->  
33 - <!--</div>--> 26 + <div class="panel-col2">
  27 + <input type="text" id="starttime" class="form-control panel-input hasDatepicker time" name="start_time"
  28 + placeholder="开始时间" value="">
  29 + </div>
  30 + <div class="panel-col2">
  31 + <input type="text" id="endtime" class="form-control panel-input hasDatepicker time" name="end_time"
  32 + placeholder="结束时间" value="">
  33 + </div>
34 <div class="panel-col"> 34 <div class="panel-col">
35 <input type="text" value="" name="productSkn" id="content-filter1" placeholder="skn" 35 <input type="text" value="" name="productSkn" id="content-filter1" placeholder="skn"
36 class="form-control"> 36 class="form-control">
@@ -26,18 +26,10 @@ @@ -26,18 +26,10 @@
26 </div> 26 </div>
27 <div class="panel-body"> 27 <div class="panel-body">
28 <div class="row"> 28 <div class="row">
29 - <!--<div class="panel-col">-->  
30 - <!--<select name="status" id="status-filter" tabindex="-1" title=""-->  
31 - <!--class="form-control">-->  
32 - <!--<option value="">状态</option>-->  
33 - <!--<option value="1">可用</option>-->  
34 - <!--<option value="0">不可用</option>-->  
35 - <!--</select>-->  
36 - <!--</div>-->  
37 <div class="panel-col"> 29 <div class="panel-col">
38 <select name="type" id="type-filter" tabindex="-1" title="" 30 <select name="type" id="type-filter" tabindex="-1" title=""
39 - class="form-control">  
40 - <option value="">类型</option> 31 + class="form-control" required="required">
  32 + <option value="-1">类型</option>
41 <option value="1">拍摄类型</option> 33 <option value="1">拍摄类型</option>
42 <option value="2">拍摄风格</option> 34 <option value="2">拍摄风格</option>
43 <option value="3">模特类型</option> 35 <option value="3">模特类型</option>
@@ -58,7 +50,8 @@ @@ -58,7 +50,8 @@
58 <div class="form-group"> 50 <div class="form-group">
59 <label class="col-sm-2 control-label" for="type">选择类别</label> 51 <label class="col-sm-2 control-label" for="type">选择类别</label>
60 <div class="col-sm-6"> 52 <div class="col-sm-6">
61 - <select id="type" class="form-control" value="[[type]]"> 53 + <select id="type" class="form-control" value="[[type]]" placeholder="类别" required="required">
  54 + <option value="-1">请选择 </option>
62 <option value="1">拍摄类型 </option> 55 <option value="1">拍摄类型 </option>
63 <option value="2">拍摄风格</option> 56 <option value="2">拍摄风格</option>
64 <option value="3">模特类型</option> 57 <option value="3">模特类型</option>
@@ -71,7 +64,7 @@ @@ -71,7 +64,7 @@
71 <div class="form-group"> 64 <div class="form-group">
72 <label class="col-sm-2 control-label" for="name">名称</label> 65 <label class="col-sm-2 control-label" for="name">名称</label>
73 <div class="col-sm-6"> 66 <div class="col-sm-6">
74 - <input type="text" value="[[name]]" class="form-control" id="name" /> 67 + <input type="text" value="[[name]]" class="form-control" id="name" placeholder="名称" required="required"/>
75 </div> 68 </div>
76 </div> 69 </div>
77 70