sellergoods_add_step2.js 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831
  1. $(function(){
  2. // 取消回车提交表单
  3. $('input').keypress(function(e){
  4. var key = window.event ? e.keyCode : e.which;
  5. if (key.toString() == "13") {
  6. return false;
  7. }
  8. });
  9. // 添加店铺分类
  10. $("#add_sgcategory").unbind().click(function(){
  11. $(".sgcategory:last").after($(".sgcategory:last").clone(true).val(0));
  12. });
  13. // 选择店铺分类
  14. $('.sgcategory').unbind().change( function(){
  15. var _val = $(this).val(); // 记录选择的值
  16. $(this).val('0'); // 已选择值清零
  17. // 验证是否已经选择
  18. if (!checkSGC(_val)) {
  19. alert('该分类已经选择,请选择其他分类');
  20. return false;
  21. }
  22. $(this).val(_val); // 重新赋值
  23. });
  24. /* 商品图片ajax上传 */
  25. $('#goods_image').fileupload({
  26. dataType: 'json',
  27. url: HOMESITEURL + '/Sellergoodsadd/image_upload.html?upload_type=uploadedfile',
  28. formData: function(form){
  29. var aclass_id=$("#demo select[name=jumpMenu]").val()
  30. return [{name:'name',value:'goods_image'},{name:'aclass_id',value:aclass_id?aclass_id:0}];
  31. },
  32. add: function (e,data) {
  33. $('img[dstype="goods_image"]').attr('src', HOMESITEROOT + '/images/loading.gif');
  34. data.submit();
  35. },
  36. done: function (e,data) {
  37. var param = data.result;
  38. if (typeof(param.error) != 'undefined') {
  39. alert(param.error);
  40. $('img[dstype="goods_image"]').attr('src',DEFAULT_GOODS_IMAGE);
  41. } else {
  42. $('input[dstype="goods_image"]').val(param.name);
  43. $('img[dstype="goods_image"]').attr('src',param.thumb_name);
  44. }
  45. }
  46. });
  47. /* 商品视频ajax上传 */
  48. $('#goodsvideo').fileupload({
  49. dataType: 'json',
  50. url: HOMESITEURL + '/Sellervideo/video_upload.html',
  51. formData: {name:'goodsvideo'},
  52. add: function (e,data) {
  53. data.submit();
  54. },
  55. done: function (e,data) {
  56. var param = data.result;
  57. if (typeof(param.error) != 'undefined') {
  58. alert(param.error);
  59. } else {
  60. $('input[dstype="goodsvideo_name"]').val(param.name);
  61. $('video[dstype="goodsvideo_name"]').attr('src',param.url);
  62. }
  63. }
  64. });
  65. /* ajax打开图片空间 */
  66. // 商品主图使用
  67. $('a[dstype="show_image"]').unbind().ajaxContent({
  68. event:'click', //mouseover
  69. loaderType:"img",
  70. loadingMsg:HOMESITEROOT+"/images/loading.gif",
  71. target:'#demo'
  72. }).click(function(){
  73. $(this).hide();
  74. $('a[dstype="del_goods_demo"]').show();
  75. });
  76. $('a[dstype="del_goods_demo"]').unbind().click(function(){
  77. $('#demo').html('');
  78. $(this).hide();
  79. $('a[dstype="show_image"]').show();
  80. });
  81. //商品主图翻页
  82. $('#demo').on('click', '.pagination li a', function() {
  83. $('#demo').load($(this).attr('href'));
  84. return false;
  85. });
  86. /* ajax打开视频库 */
  87. $('a[dstype="show_video"]').unbind().ajaxContent({
  88. event:'click', //mouseover
  89. loaderType:"img",
  90. loadingMsg:HOMESITEROOT+"/images/loading.gif",
  91. target:'#goods_video_list'
  92. }).click(function(){
  93. $(this).hide();
  94. $('a[dstype="del_goods_video_list"]').show();
  95. });
  96. $('a[dstype="del_goods_video_list"]').unbind().click(function(){
  97. $('#goods_video_list').html('');
  98. $(this).hide();
  99. $('a[dstype="show_video"]').show();
  100. });
  101. //视频库翻页
  102. $('#goods_video_list').on('click', '.pagination li a', function() {
  103. $('#goods_video_list').load($(this).attr('href'));
  104. return false;
  105. });
  106. // 商品描述使用
  107. $('a[dstype="show_desc"]').unbind().ajaxContent({
  108. event:'click', //mouseover
  109. loaderType:"img",
  110. loadingMsg:HOMESITEROOT+"/images/loading.gif",
  111. target:'#des_demo'
  112. }).click(function(){
  113. $(this).hide();
  114. $('a[dstype="del_desc"]').show();
  115. });
  116. $('a[dstype="del_desc"]').click(function(){
  117. $('#des_demo').html('');
  118. $(this).hide();
  119. $('a[dstype="show_desc"]').show();
  120. });
  121. //商品描述图片翻页
  122. $('#des_demo').on('click', '.pagination li a', function() {
  123. $('#des_demo').load($(this).attr('href'));
  124. return false;
  125. });
  126. var index=0
  127. $('#add_album').fileupload({
  128. dataType: 'json',
  129. url: HOMESITEURL+'/Sellergoodsadd/image_upload.html',
  130. formData: function(form){
  131. var aclass_id=$("#des_demo select[name=jumpMenu]").val()
  132. setTimeout(function(){
  133. index=0
  134. },1000)
  135. return [{name:'index',value:++index},{name:'name',value:'add_album'},{name:'aclass_id',value:aclass_id?aclass_id:0}];
  136. },
  137. add: function (e,data) {
  138. $('i[dstype="add_album_i"]').html("").addClass('rotate').attr('data_type', parseInt($('i[dstype="add_album_i"]').attr('data_type'))+1);
  139. data.submit();
  140. },
  141. done: function (e,data) {
  142. var _counter = parseInt($('i[dstype="add_album_i"]').attr('data_type'));
  143. _counter -= 1;
  144. if (_counter == 0) {
  145. $('i[dstype="add_album_i"]').removeClass('rotate').html("");
  146. $('a[dstype="show_desc"]').click();
  147. }
  148. $('i[dstype="add_album_i"]').attr('data_type', _counter);
  149. }
  150. });
  151. /* ajax打开图片空间 end */
  152. // 商品属性
  153. attr_selected();
  154. $('select[ds_type="attr_select"]').change(function(){
  155. id = $(this).find('option:selected').attr('ds_type');
  156. name = $(this).attr('attr').replace(/__NC__/g,id);
  157. $(this).attr('name',name);
  158. });
  159. // 修改规格名称
  160. $('dl[dstype="spec_group_dl"]').on('click', 'input[type="checkbox"]', function(){
  161. pv = $(this).parents('li').find('span[dstype="pv_name"]');
  162. if(typeof(pv.find('input').val()) == 'undefined'){
  163. pv.html('<input type="text" maxlength="20" class="text" value="'+pv.html()+'" />');
  164. }else{
  165. pv.html(pv.find('input').val());
  166. }
  167. });
  168. $('dl[dstype="spec_group_dl"]').on('change','span[dstype="pv_name"] > input',function(){
  169. change_img_name($(this)); // 修改相关的颜色名称
  170. into_array(); // 将选中的规格放入数组
  171. goods_stock_set(); // 生成库存配置
  172. });
  173. // 运费部分显示隐藏
  174. $('input[dstype="freight"]').click(function(){
  175. $('input[dstype="freight"]').nextAll('div[dstype="div_freight"]').hide();
  176. $(this).nextAll('div[dstype="div_freight"]').show();
  177. });
  178. // 商品所在地
  179. /*德尚网络待完善 BEGIN*/
  180. // 定时发布时间
  181. $('#starttime').datepicker({dateFormat: 'yy-mm-dd'});
  182. $('input[name="g_state"]').click(function(){
  183. if($(this).attr('dstype') == 'auto'){
  184. $('#starttime').removeAttr('disabled').css('background','');
  185. $('#starttime_H').removeAttr('disabled').css('background','');
  186. $('#starttime_i').removeAttr('disabled').css('background','');
  187. }else{
  188. $('#starttime').prop('disabled','disabled').css('background','#E7E7E7 none');
  189. $('#starttime_H').prop('disabled','disabled').css('background','#E7E7E7 none');
  190. $('#starttime_i').prop('disabled','disabled').css('background','#E7E7E7 none');
  191. }
  192. });
  193. // 计算折扣
  194. $('input[name="g_price"],input[name="g_marketprice"]').change(function(){
  195. discountCalculator();
  196. });
  197. /* AJAX添加规格值 */
  198. // 添加规格
  199. $('a[dstype="specAdd"]').click(function(){
  200. var _parent = $(this).parents('li:first');
  201. _parent.find('div[dstype="specAdd1"]').hide();
  202. _parent.find('div[dstype="specAdd2"]').show();
  203. _parent.find('input').focus();
  204. });
  205. // 取消
  206. $('a[dstype="specAddCancel"]').click(function(){
  207. var _parent = $(this).parents('li:first');
  208. _parent.find('div[dstype="specAdd1"]').show();
  209. _parent.find('div[dstype="specAdd2"]').hide();
  210. _parent.find('input').val('');
  211. });
  212. // 提交
  213. $('a[dstype="specAddSubmit"]').click(function(){
  214. var _parent = $(this).parents('li:first');
  215. eval('var data_str = ' + _parent.attr('data-param'));
  216. var _input = _parent.find('input');
  217. _parent.find('div[dstype="specAdd1"]').show();
  218. _parent.find('div[dstype="specAdd2"]').hide();
  219. $.getJSON(data_str.url, {gc_id : data_str.gc_id , sp_id : data_str.sp_id , name : _input.val()}, function(data){
  220. if (data.done) {
  221. _parent.before('<li><span dstype="input_checkbox"><input type="checkbox" name="sp_val[' + data_str.sp_id + '][' + data.value_id + ']" ds_type="' + data.value_id + '" value="' +_input.val()+ '" /></span><span dstype="pv_name">' + _input.val() + '</span></li>');
  222. _input.val('');
  223. }
  224. });
  225. });
  226. // 修改规格名称
  227. $('input[dstype="spec_name"]').change(function(){
  228. eval('var data_str = ' + $(this).attr('data-param'));
  229. if ($(this).val() == '') {
  230. $(this).val(data_str.name);
  231. }
  232. $('th[dstype="spec_name_' + data_str.id + '"]').html($(this).val());
  233. });
  234. // 批量设置价格、库存、预警值
  235. $('.batch > i').click(function(){
  236. $('.batch > .batch-input').hide();
  237. $(this).next().show();
  238. });
  239. $('.batch-input > .close').click(function(){
  240. $(this).parent().hide();
  241. });
  242. $('.batch-input > .dssc-btn-mini').click(function(){
  243. var _value = $(this).prev().val();
  244. var _type = $(this).attr('data-type');
  245. if (_type == 'price' || _type == 'marketprice' ) {
  246. _value = number_format(_value, 2);
  247. } else if (_type == 'goods_weight'){
  248. _value = number_format(_value, 3);
  249. } else {
  250. _value = parseInt(_value);
  251. }
  252. if (_type == 'alarm' && _value > 255) {
  253. _value = 255;
  254. }
  255. if (isNaN(_value)) {
  256. _value = 0;
  257. }
  258. $('input[data_type="' + _type + '" ]').val(_value);
  259. $(this).parent().hide();
  260. $(this).prev().val('');
  261. if (_type == 'price') {
  262. computePrice();
  263. }
  264. if (_type == 'goods_weight') {
  265. computeWeight();
  266. }
  267. if (_type == 'stock') {
  268. computeStock();
  269. }
  270. });
  271. /* AJAX选择品牌 */
  272. // 根据首字母查询
  273. $('.letter[dstype="letter"]').find('a[data-letter]').click(function(){
  274. var _url = $(this).parents('.brand-index:first').attr('data-url');
  275. var _tid = $(this).parents('.brand-index:first').attr('data-tid');
  276. var _letter = $(this).attr('data-letter');
  277. var _search = $(this).html();
  278. $.getJSON(_url, {type : 'letter', tid : _tid, letter : _letter}, function(data){
  279. insertBrand(data, _search);
  280. });
  281. });
  282. $('.letter[dstype="letter"]').find('a[data-empty]').click(function(){
  283. $('#b_name').val("");
  284. });
  285. // 根据关键字查询
  286. $('.search[dstype="search"]').find('a').click(function(){
  287. var _url = $(this).parents('.brand-index:first').attr('data-url');
  288. var _tid = $(this).parents('.brand-index:first').attr('data-tid');
  289. var _keyword = $('#search_brand_keyword').val();
  290. $.getJSON(_url, {type : 'keyword', tid : _tid, keyword : _keyword}, function(data){
  291. insertBrand(data, _keyword);
  292. });
  293. });
  294. // 选择品牌
  295. $('ul[dstype="brand_list"]').on('click', 'li', function(){
  296. $('#b_id').val($(this).attr('data-id'));
  297. $('#b_name').val($(this).attr('data-name'));
  298. $('.dssc-brand-select > .dssc-brand-select-container').hide();
  299. });
  300. //搜索品牌列表滚条绑定
  301. $('div[dstype="brandList"]').perfectScrollbar();
  302. $('select[name="b_id"]').change(function(){
  303. getBrandName();
  304. });
  305. $('input[name="b_name"]').focus(function(){
  306. $('.dssc-brand-select > .dssc-brand-select-container').show();
  307. });
  308. //下拉隐藏显示品牌列表
  309. $('.add-on[dstype="add-on"]').click(function(){
  310. $('.dssc-brand-select > .dssc-brand-select-container').fadeToggle();
  311. });
  312. /* 虚拟控制 */
  313. // 虚拟商品有效期
  314. $('#g_vindate').datepicker({dateFormat: 'yy-mm-dd', minDate: new Date()});
  315. $('[name="is_gv"]').change(function(){
  316. if ($('#is_gv_1').prop("checked")) {
  317. $('#is_goodsfcode_0').click(); // 虚拟商品不能发布F码,取消选择F码
  318. $('#is_presell_0').click(); // 虚拟商品不能设置预售,取消选择预售
  319. $('[dstype="virtual_valid"]').show();
  320. var virtual_type=$('input[name=virtual_type]:checked').val()
  321. $('[virtual_type][virtual_type!='+virtual_type+']').hide();
  322. $('[dstype="virtual_null"]').hide();
  323. if(!$('dl[ds_type="spec_dl"]').is(':hidden')){
  324. $('[virtual_type][ds_type="no_spec"]').hide()
  325. }
  326. } else {
  327. $('[dstype="virtual_valid"]').hide();
  328. $('[dstype="virtual_null"]').show();
  329. $('#g_vindate').val('');
  330. $('#g_vlimit').val('');
  331. $('[dstype!="virtual_valid"][virtual_type=0]').show();
  332. }
  333. });
  334. $('[name="virtual_type"]').change(function(){
  335. var virtual_type=$(this).val()
  336. $('[virtual_type]').hide();
  337. $('[virtual_type='+virtual_type+']').show();
  338. if(!$('dl[ds_type="spec_dl"]').is(':hidden')){
  339. $('[virtual_type][ds_type="no_spec"]').hide()
  340. }
  341. });
  342. /* F码控制 */
  343. $('[name="is_fc"]').change(function(){
  344. if ($('#is_goodsfcode_1').prop("checked")) {
  345. $('[dstype="fcode_valid"]').show();
  346. } else {
  347. $('[dstype="fcode_valid"]').hide();
  348. $('#g_fccount').val('');
  349. $('#g_fcprefix').val('');
  350. }
  351. });
  352. /* 预售控制 */
  353. // 预售--发货时间
  354. $('#g_deliverdate').datepicker({dateFormat: 'yy-mm-dd', minDate: new Date()});
  355. $('[name="is_presell"]').change(function(){
  356. if ($('#is_presell_1').prop("checked")) {
  357. $('[dstype="is_presell"]').show();
  358. } else {
  359. $('[dstype="is_presell"]').hide();
  360. }
  361. });
  362. /* 预约预售控制 */
  363. // 预约--出售时间
  364. $('#g_saledate').datepicker({dateFormat: 'yy-mm-dd', minDate: new Date()});
  365. $('[name="is_appoint"]').change(function(){
  366. if ($('#is_appoint_1').prop("checked")) {
  367. $('[dstype="is_appoint"]').show();
  368. } else {
  369. $('[dstype="is_appoint"]').hide();
  370. }
  371. });
  372. /* 手机端 商品描述 */
  373. // 显示隐藏控制面板
  374. $('div[dstype="mobile_pannel"]').on('click', '.module', function(){
  375. mbPannelInit();
  376. $(this).siblings().removeClass('current').end().addClass('current');
  377. });
  378. // 上移
  379. $('div[dstype="mobile_pannel"]').on('click', '[dstype="mp_up"]', function(){
  380. var _parents = $(this).parents('.module:first');
  381. _rs = mDataMove(_parents.index(), 0);
  382. if (!_rs) {
  383. return false;
  384. }
  385. _parents.prev().before(_parents.clone());
  386. _parents.remove();
  387. mbPannelInit();
  388. });
  389. // 下移
  390. $('div[dstype="mobile_pannel"]').on('click', '[dstype="mp_down"]', function(){
  391. var _parents = $(this).parents('.module:first');
  392. _rs = mDataMove(_parents.index(), 1);
  393. if (!_rs) {
  394. return false;
  395. }
  396. _parents.next().after(_parents.clone());
  397. _parents.remove();
  398. mbPannelInit();
  399. });
  400. // 删除
  401. $('div[dstype="mobile_pannel"]').on('click', '[dstype="mp_del"]', function(){
  402. var _parents = $(this).parents('.module:first');
  403. mDataRemove(_parents.index());
  404. _parents.remove();
  405. mbPannelInit();
  406. });
  407. // 编辑
  408. $('div[dstype="mobile_pannel"]').on('click', '[dstype="mp_edit"]', function(){
  409. $('a[dstype="meat_cancel"]').click();
  410. var _parents = $(this).parents('.module:first');
  411. var _val = _parents.find('.text-div').html();
  412. $(this).parents('.module:first').html('')
  413. .append('<div class="content"></div>').find('.content')
  414. .append('<div class="dssc-mea-text" dstype="mea_txt"></div>')
  415. .find('div[dstype="mea_txt"]')
  416. .append('<p id="meat_content_count" class="text-tip">')
  417. .append('<textarea class="textarea valid" data-old="' + _val + '" dstype="meat_content">' + _val + '</textarea>')
  418. .append('<div class="button"><a class="dssc-btn dssc-btn-blue" dstype="meat_edit_submit" href="javascript:void(0);">确认</a><a class="dssc-btn ml10" dstype="meat_edit_cancel" href="javascript:void(0);">取消</a></div>')
  419. .append('<a class="text-close" dstype="meat_edit_cancel" href="javascript:void(0);">X</a>')
  420. .find('#meat_content_count').html('').end()
  421. .find('textarea[dstype="meat_content"]').unbind().charCount({
  422. allowed: 500,
  423. warning: 50,
  424. counterContainerID: 'meat_content_count',
  425. firstCounterText: '还可以输入',
  426. endCounterText: '字',
  427. errorCounterText: '已经超出'
  428. });
  429. });
  430. // 编辑提交
  431. $('div[dstype="mobile_pannel"]').on('click', '[dstype="meat_edit_submit"]', function(){
  432. var _parents = $(this).parents('.module:first');
  433. var _c = toTxt(_parents.find('textarea[dstype="meat_content"]').val().replace(/[\r\n]/g,''));
  434. var _cl = _c.length;
  435. if (_cl == 0 || _cl > 500) {
  436. return false;
  437. }
  438. _data = new Object;
  439. _data.type = 'text';
  440. _data.value = _c;
  441. _rs = mDataReplace(_parents.index(), _data);
  442. if (!_rs) {
  443. return false;
  444. }
  445. _parents.html('').append('<div class="tools"><a dstype="mp_up" href="javascript:void(0);">上移</a><a dstype="mp_down" href="javascript:void(0);">下移</a><a dstype="mp_edit" href="javascript:void(0);">编辑</a><a dstype="mp_del" href="javascript:void(0);">删除</a></div>')
  446. .append('<div class="content"><div class="text-div">' + _c + '</div></div>')
  447. .append('<div class="cover"></div>');
  448. });
  449. // 编辑关闭
  450. $('div[dstype="mobile_pannel"]').on('click', '[dstype="meat_edit_cancel"]', function(){
  451. var _parents = $(this).parents('.module:first');
  452. var _c = _parents.find('textarea[dstype="meat_content"]').attr('data-old');
  453. _parents.html('').append('<div class="tools"><a dstype="mp_up" href="javascript:void(0);">上移</a><a dstype="mp_down" href="javascript:void(0);">下移</a><a dstype="mp_edit" href="javascript:void(0);">编辑</a><a dstype="mp_del" href="javascript:void(0);">删除</a></div>')
  454. .append('<div class="content"><div class="text-div">' + _c + '</div></div>')
  455. .append('<div class="cover"></div>');
  456. });
  457. // 初始化控制面板
  458. mbPannelInit = function(){
  459. $('div[dstype="mobile_pannel"]')
  460. .find('a[dstype^="mp_"]').show().end()
  461. .find('.module')
  462. .first().find('a[dstype="mp_up"]').hide().end().end()
  463. .last().find('a[dstype="mp_down"]').hide();
  464. }
  465. // 添加文字按钮,显示文字输入框
  466. $('a[dstype="mb_add_txt"]').click(function(){
  467. $('div[dstype="mea_txt"]').show();
  468. $('a[dstype="meai_cancel"]').click();
  469. $('div[dstype="mobile_editor_area"]').find('textarea[dstype="meat_content"]').unbind().charCount({
  470. allowed: 500,
  471. warning: 50,
  472. counterContainerID: 'meat_content_count',
  473. firstCounterText: '还可以输入',
  474. endCounterText: '字',
  475. errorCounterText: '已经超出'
  476. })});
  477. // 关闭 文字输入框按钮
  478. $('a[dstype="meat_cancel"]').click(function(){
  479. $(this).parents('div[dstype="mea_txt"]').find('textarea[dstype="meat_content"]').val('').end().hide();
  480. });
  481. // 提交 文字输入框按钮
  482. $('a[dstype="meat_submit"]').click(function(){
  483. var _c = toTxt($('textarea[dstype="meat_content"]').val().replace(/[\r\n]/g,''));
  484. var _cl = _c.length;
  485. if (_cl == 0 || _cl > 500) {
  486. return false;
  487. }
  488. _data = new Object;
  489. _data.type = 'text';
  490. _data.value = _c;
  491. _rs = mDataInsert(_data);
  492. if (!_rs) {
  493. return false;
  494. }
  495. $('<div class="module m-text"></div>')
  496. .append('<div class="tools"><a dstype="mp_up" href="javascript:void(0);">上移</a><a dstype="mp_down" href="javascript:void(0);">下移</a><a dstype="mp_edit" href="javascript:void(0);">编辑</a><a dstype="mp_del" href="javascript:void(0);">删除</a></div>')
  497. .append('<div class="content"><div class="text-div">' + _c + '</div></div>')
  498. .append('<div class="cover"></div>').appendTo('div[dstype="mobile_pannel"]');
  499. $('a[dstype="meat_cancel"]').click();
  500. });
  501. // 添加图片按钮,显示图片空间文字
  502. $('a[dstype="mb_add_img"]').click(function(){
  503. $('a[dstype="meat_cancel"]').click();
  504. $('div[dstype="mea_img"]').show().load(HOMESITEURL+'/Selleralbum/pic_list?item=mobile');
  505. });
  506. // 关闭 图片选择
  507. $('div[dstype="mobile_editor_area"]').on('click', 'a[dstype="meai_cancel"]', function(){
  508. $('div[dstype="mea_img"]').html('');
  509. });
  510. // 插图图片
  511. insert_mobile_img = function(data){
  512. _data = new Object;
  513. _data.type = 'image';
  514. _data.value = data;
  515. _rs = mDataInsert(_data);
  516. if (!_rs) {
  517. return false;
  518. }
  519. $('<div class="module m-image"></div>')
  520. .append('<div class="tools"><a dstype="mp_up" href="javascript:void(0);">上移</a><a dstype="mp_down" href="javascript:void(0);">下移</a><a dstype="mp_rpl" href="javascript:void(0);">替换</a><a dstype="mp_del" href="javascript:void(0);">删除</a></div>')
  521. .append('<div class="content"><div class="image-div"><img src="' + data + '"></div></div>')
  522. .append('<div class="cover"></div>').appendTo('div[dstype="mobile_pannel"]');
  523. }
  524. // 替换图片
  525. $('div[dstype="mobile_pannel"]').on('click', 'a[dstype="mp_rpl"]', function(){
  526. $('a[dstype="meat_cancel"]').click();
  527. $('div[dstype="mea_img"]').show().load(HOMESITEURL+'/Selleralbum/pic_list.html?item=mobile&type=replace');
  528. });
  529. // 插图图片
  530. replace_mobile_img = function(data){
  531. var _parents = $('div.m-image.current');
  532. _parents.find('img').attr('src', data);
  533. _data = new Object;
  534. _data.type = 'image';
  535. _data.value = data;
  536. mDataReplace(_parents.index(), _data);
  537. }
  538. // 插入数据
  539. mDataInsert = function(data){
  540. _m_data = mDataGet();
  541. _m_data.push(data);
  542. return mDataSet(_m_data);
  543. }
  544. // 数据移动
  545. // type 0上移 1下移
  546. mDataMove = function(index, type) {
  547. _m_data = mDataGet();
  548. _data = _m_data.splice(index, 1);
  549. if (type) {
  550. index += 1;
  551. } else {
  552. index -= 1;
  553. }
  554. _m_data.splice(index, 0, _data[0]);
  555. return mDataSet(_m_data);
  556. }
  557. // 数据移除
  558. mDataRemove = function(index){
  559. _m_data = mDataGet();
  560. _m_data.splice(index, 1); // 删除数据
  561. return mDataSet(_m_data);
  562. }
  563. // 替换数据
  564. mDataReplace = function(index, data){
  565. _m_data = mDataGet();
  566. _m_data.splice(index, 1, data);
  567. return mDataSet(_m_data);
  568. }
  569. // 获取数据
  570. mDataGet = function(){
  571. _m_body = $('input[name="m_body"]').val();
  572. if (_m_body == '' || _m_body == 'false') {
  573. var _m_data = new Array;
  574. } else {
  575. eval('var _m_data = ' + _m_body);
  576. }
  577. return _m_data;
  578. }
  579. // 设置数据
  580. mDataSet = function(data){
  581. var _i_c = 0;
  582. var _i_c_m = 20;
  583. var _t_c = 0;
  584. var _t_c_m = 5000;
  585. var _sign = true;
  586. $.each(data, function(i, n){
  587. if (n.type == 'image') {
  588. _i_c += 1;
  589. if (_i_c > _i_c_m) {
  590. alert('只能选择'+_i_c_m+'张图片');
  591. _sign = false;
  592. return false;
  593. }
  594. } else if (n.type == 'text') {
  595. _t_c += n.value.length;
  596. if (_t_c > _t_c_m) {
  597. alert('只能输入'+_t_c_m+'个字符');
  598. _sign = false;
  599. return false;
  600. }
  601. }
  602. });
  603. if (!_sign) {
  604. return false;
  605. }
  606. $('span[dstype="img_count_tip"]').html('还可以选择图片<em>' + (_i_c_m - _i_c) + '</em>张');
  607. $('span[dstype="txt_count_tip"]').html('还可以输入<em>' + (_t_c_m - _t_c) + '</em>字');
  608. _data = JSON.stringify(data);
  609. $('input[name="m_body"]').val(_data);
  610. return true;
  611. }
  612. // 转码
  613. toTxt = function(str) {
  614. var RexStr = /\<|\>|\"|\'|\&|\\/g
  615. str = str.replace(RexStr, function(MatchStr) {
  616. switch (MatchStr) {
  617. case "<":
  618. return "";
  619. break;
  620. case ">":
  621. return "";
  622. break;
  623. case "\"":
  624. return "";
  625. break;
  626. case "'":
  627. return "";
  628. break;
  629. case "&":
  630. return "";
  631. break;
  632. case "\\":
  633. return "";
  634. break;
  635. default:
  636. break;
  637. }
  638. })
  639. return str;
  640. }
  641. });
  642. /* 资源上传 */
  643. function uploadResource(e,o) {
  644. var formData = new FormData();
  645. //文件
  646. formData.append('file', e.target.files[0]);
  647. $.ajax({
  648. type: "POST",
  649. url: HOMESITEURL + '/SellerResource/resource_upload.html',
  650. dataType: 'json',
  651. data: formData,
  652. contentType: false,
  653. processData: false,
  654. success: function (data) {
  655. if (data.code == 10000) {
  656. var html=''
  657. html+='<div class="upload-file">'
  658. html+='<span class="upload-file-name">'
  659. html+=data.result.name
  660. html+='</span>'
  661. html+='<i class="upload-file-icon iconfont" onclick="delResource(this,\''+data.result.name+'\')">'
  662. html+='&#xe696;'
  663. html+='</i>'
  664. html+='</div>'
  665. $(o).parents('.upload-wrapper').find('input[type="hidden"]').val(data.result.name)
  666. $(o).parents('.upload-wrapper').find('.dssc-upload-btn').hide()
  667. $(o).parents('.upload-wrapper').find('.upload-file-wrapper').html(html)
  668. } else {
  669. layer.msg(data.message)
  670. }
  671. }
  672. })
  673. }
  674. function delResource(o,file_name){
  675. $.getJSON(HOMESITEURL + '/SellerResource/del_resource.html', {file_name : file_name}, function(data){
  676. if(data.code==10000){
  677. $(o).parents('.upload-wrapper').find('.dssc-upload-btn').show()
  678. $(o).parents('.upload-wrapper').find('.upload-file-wrapper').html('')
  679. }else{
  680. layer.msg(data.message)
  681. }
  682. })
  683. }
  684. // 计算商品库存
  685. function computeStock(){
  686. // 库存
  687. var _stock = 0;
  688. $('input[data_type="stock"]').each(function(){
  689. if($(this).val() != ''){
  690. _stock += parseInt($(this).val());
  691. }
  692. });
  693. $('input[name="g_storage"]').val(_stock);
  694. }
  695. // 计算商品重量
  696. function computeWeight(){
  697. // 库存
  698. var _weight = parseFloat($('input[data_type="goods_weight"]').eq(0).val());
  699. $('input[name="goods_weight"]').val(isNaN(_weight)?'':_weight);
  700. }
  701. // 计算价格
  702. function computePrice(){
  703. // 计算最低价格
  704. var _price = 0;var _price_sign = false;
  705. $('input[data_type="price"]').each(function(){
  706. if($(this).val() != '' && $(this)){
  707. if(!_price_sign){
  708. _price = parseFloat($(this).val());
  709. _price_sign = true;
  710. }else{
  711. _price = (parseFloat($(this).val()) > _price) ? _price : parseFloat($(this).val());
  712. }
  713. }
  714. });
  715. $('input[name="g_price"]').val(number_format(_price, 2));
  716. discountCalculator(); // 计算折扣
  717. }
  718. // 计算折扣
  719. function discountCalculator() {
  720. var _price = parseFloat($('input[name="g_price"]').val());
  721. var _marketprice = parseFloat($('input[name="g_marketprice"]').val());
  722. if((!isNaN(_price) && _price != 0) && (!isNaN(_marketprice) && _marketprice != 0)){
  723. var _discount = parseInt(_price/_marketprice*100);
  724. $('input[name="g_discount"]').val(_discount);
  725. }
  726. }
  727. //获得商品名称
  728. function getBrandName() {
  729. var brand_name = $('select[name="b_id"] > option:selected').html();
  730. $('input[name="b_name"]').val(brand_name);
  731. }
  732. //修改相关的颜色名称
  733. function change_img_name(Obj){
  734. var S = Obj.parents('li').find('input[type="checkbox"]');
  735. S.val(Obj.val());
  736. var V = $('tr[dstype="file_tr_'+S.attr('ds_type')+'"]');
  737. V.find('span[dstype="pv_name"]').html(Obj.val());
  738. V.find('input[type="file"]').attr('name', Obj.val());
  739. }
  740. // 商品属性
  741. function attr_selected(){
  742. $('select[ds_type="attr_select"] option:selected').each(function(){
  743. id = $(this).attr('ds_type');
  744. name = $(this).parents('select').attr('attr').replace(/__NC__/g,id);
  745. $(this).parents('select').attr('name',name);
  746. });
  747. }
  748. // 验证店铺分类是否重复
  749. function checkSGC($val) {
  750. var _return = true;
  751. $('.sgcategory').each(function(){
  752. if ($val !=0 && $val == $(this).val()) {
  753. _return = false;
  754. }
  755. });
  756. return _return;
  757. }
  758. /* 插入商品图片 */
  759. function insert_img(name, src) {
  760. $('input[dstype="goods_image"]').val(name);
  761. $('img[dstype="goods_image"]').attr('src',src);
  762. }
  763. /* 插入商品视频 */
  764. function insert_video(name, src) {
  765. $('input[dstype="goodsvideo_name"]').val(name);
  766. $('video[dstype="goodsvideo_name"]').attr('src',src);
  767. }
  768. /* 插入编辑器 */
  769. function insert_editor(file_path) {
  770. ue.execCommand('insertimage', {src:file_path});
  771. }
  772. function setArea(area1, area2) {
  773. $('#province_id').val(area1).change();
  774. $('#city_id').val(area2);
  775. }
  776. // 插入品牌
  777. function insertBrand(param, search) {
  778. $('div[dstype="brandList"]').show();
  779. $('div[dstype="noBrandList"]').hide();
  780. var _ul = $('ul[dstype="brand_list"]');
  781. _ul.html('');
  782. if ($.isEmptyObject(param)) {
  783. $('div[dstype="brandList"]').hide();
  784. $('div[dstype="noBrandList"]').show().find('strong').html(search);
  785. return false;
  786. }
  787. $.each(param, function(i, n){
  788. $('<li data-id="' + n.brand_id + '" data-name="' + n.brand_name + '"><em>' + n.brand_initial + '</em>' + n.brand_name + '</li>').appendTo(_ul);
  789. });
  790. //搜索品牌列表滚条绑定
  791. $('div[dstype="brandList"]').perfectScrollbar('update');
  792. }