sellergoods_add_step2.js 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832
  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. // 关闭 文字输入框按钮
  479. $('a[dstype="meat_cancel"]').click(function () {
  480. $(this).parents('div[dstype="mea_txt"]').find('textarea[dstype="meat_content"]').val('').end().hide();
  481. });
  482. // 提交 文字输入框按钮
  483. $('a[dstype="meat_submit"]').click(function () {
  484. var _c = toTxt($('textarea[dstype="meat_content"]').val().replace(/[\r\n]/g, ''));
  485. var _cl = _c.length;
  486. if (_cl == 0 || _cl > 500) {
  487. return false;
  488. }
  489. _data = new Object;
  490. _data.type = 'text';
  491. _data.value = _c;
  492. _rs = mDataInsert(_data);
  493. if (!_rs) {
  494. return false;
  495. }
  496. $('<div class="module m-text"></div>')
  497. .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>')
  498. .append('<div class="content"><div class="text-div">' + _c + '</div></div>')
  499. .append('<div class="cover"></div>').appendTo('div[dstype="mobile_pannel"]');
  500. $('a[dstype="meat_cancel"]').click();
  501. });
  502. // 添加图片按钮,显示图片空间文字
  503. $('a[dstype="mb_add_img"]').click(function () {
  504. $('a[dstype="meat_cancel"]').click();
  505. $('div[dstype="mea_img"]').show().load(HOMESITEURL + '/Selleralbum/pic_list?item=mobile');
  506. });
  507. // 关闭 图片选择
  508. $('div[dstype="mobile_editor_area"]').on('click', 'a[dstype="meai_cancel"]', function () {
  509. $('div[dstype="mea_img"]').html('');
  510. });
  511. // 插图图片
  512. insert_mobile_img = function (data) {
  513. _data = new Object;
  514. _data.type = 'image';
  515. _data.value = data;
  516. _rs = mDataInsert(_data);
  517. if (!_rs) {
  518. return false;
  519. }
  520. $('<div class="module m-image"></div>')
  521. .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>')
  522. .append('<div class="content"><div class="image-div"><img src="' + data + '"></div></div>')
  523. .append('<div class="cover"></div>').appendTo('div[dstype="mobile_pannel"]');
  524. }
  525. // 替换图片
  526. $('div[dstype="mobile_pannel"]').on('click', 'a[dstype="mp_rpl"]', function () {
  527. $('a[dstype="meat_cancel"]').click();
  528. $('div[dstype="mea_img"]').show().load(HOMESITEURL + '/Selleralbum/pic_list.html?item=mobile&type=replace');
  529. });
  530. // 插图图片
  531. replace_mobile_img = function (data) {
  532. var _parents = $('div.m-image.current');
  533. _parents.find('img').attr('src', data);
  534. _data = new Object;
  535. _data.type = 'image';
  536. _data.value = data;
  537. mDataReplace(_parents.index(), _data);
  538. }
  539. // 插入数据
  540. mDataInsert = function (data) {
  541. _m_data = mDataGet();
  542. _m_data.push(data);
  543. return mDataSet(_m_data);
  544. }
  545. // 数据移动
  546. // type 0上移 1下移
  547. mDataMove = function (index, type) {
  548. _m_data = mDataGet();
  549. _data = _m_data.splice(index, 1);
  550. if (type) {
  551. index += 1;
  552. } else {
  553. index -= 1;
  554. }
  555. _m_data.splice(index, 0, _data[0]);
  556. return mDataSet(_m_data);
  557. }
  558. // 数据移除
  559. mDataRemove = function (index) {
  560. _m_data = mDataGet();
  561. _m_data.splice(index, 1); // 删除数据
  562. return mDataSet(_m_data);
  563. }
  564. // 替换数据
  565. mDataReplace = function (index, data) {
  566. _m_data = mDataGet();
  567. _m_data.splice(index, 1, data);
  568. return mDataSet(_m_data);
  569. }
  570. // 获取数据
  571. mDataGet = function () {
  572. _m_body = $('input[name="m_body"]').val();
  573. if (_m_body == '' || _m_body == 'false') {
  574. var _m_data = new Array;
  575. } else {
  576. eval('var _m_data = ' + _m_body);
  577. }
  578. return _m_data;
  579. }
  580. // 设置数据
  581. mDataSet = function (data) {
  582. var _i_c = 0;
  583. var _i_c_m = 20;
  584. var _t_c = 0;
  585. var _t_c_m = 5000;
  586. var _sign = true;
  587. $.each(data, function (i, n) {
  588. if (n.type == 'image') {
  589. _i_c += 1;
  590. if (_i_c > _i_c_m) {
  591. alert('只能选择' + _i_c_m + '张图片');
  592. _sign = false;
  593. return false;
  594. }
  595. } else if (n.type == 'text') {
  596. _t_c += n.value.length;
  597. if (_t_c > _t_c_m) {
  598. alert('只能输入' + _t_c_m + '个字符');
  599. _sign = false;
  600. return false;
  601. }
  602. }
  603. });
  604. if (!_sign) {
  605. return false;
  606. }
  607. $('span[dstype="img_count_tip"]').html('还可以选择图片<em>' + (_i_c_m - _i_c) + '</em>张');
  608. $('span[dstype="txt_count_tip"]').html('还可以输入<em>' + (_t_c_m - _t_c) + '</em>字');
  609. _data = JSON.stringify(data);
  610. $('input[name="m_body"]').val(_data);
  611. return true;
  612. }
  613. // 转码
  614. toTxt = function (str) {
  615. var RexStr = /\<|\>|\"|\'|\&|\\/g
  616. str = str.replace(RexStr, function (MatchStr) {
  617. switch (MatchStr) {
  618. case "<":
  619. return "";
  620. break;
  621. case ">":
  622. return "";
  623. break;
  624. case "\"":
  625. return "";
  626. break;
  627. case "'":
  628. return "";
  629. break;
  630. case "&":
  631. return "";
  632. break;
  633. case "\\":
  634. return "";
  635. break;
  636. default:
  637. break;
  638. }
  639. })
  640. return str;
  641. }
  642. });
  643. /* 资源上传 */
  644. function uploadResource(e, o) {
  645. var formData = new FormData();
  646. //文件
  647. formData.append('file', e.target.files[0]);
  648. $.ajax({
  649. type: "POST",
  650. url: HOMESITEURL + '/SellerResource/resource_upload.html',
  651. dataType: 'json',
  652. data: formData,
  653. contentType: false,
  654. processData: false,
  655. success: function (data) {
  656. if (data.code == 10000) {
  657. var html = ''
  658. html += '<div class="upload-file">'
  659. html += '<span class="upload-file-name">'
  660. html += data.result.name
  661. html += '</span>'
  662. html += '<i class="upload-file-icon iconfont" onclick="delResource(this,\'' + data.result.name + '\')">'
  663. html += '&#xe696;'
  664. html += '</i>'
  665. html += '</div>'
  666. $(o).parents('.upload-wrapper').find('input[type="hidden"]').val(data.result.name)
  667. $(o).parents('.upload-wrapper').find('.dssc-upload-btn').hide()
  668. $(o).parents('.upload-wrapper').find('.upload-file-wrapper').html(html)
  669. } else {
  670. layer.msg(data.message)
  671. }
  672. }
  673. })
  674. }
  675. function delResource(o, file_name) {
  676. $.getJSON(HOMESITEURL + '/SellerResource/del_resource.html', { file_name: file_name }, function (data) {
  677. if (data.code == 10000) {
  678. $(o).parents('.upload-wrapper').find('.dssc-upload-btn').show()
  679. $(o).parents('.upload-wrapper').find('.upload-file-wrapper').html('')
  680. } else {
  681. layer.msg(data.message)
  682. }
  683. })
  684. }
  685. // 计算商品库存
  686. function computeStock() {
  687. // 库存
  688. var _stock = 0;
  689. $('input[data_type="stock"]').each(function () {
  690. if ($(this).val() != '') {
  691. _stock += parseInt($(this).val());
  692. }
  693. });
  694. $('input[name="g_storage"]').val(_stock);
  695. }
  696. // 计算商品重量
  697. function computeWeight() {
  698. // 库存
  699. var _weight = parseFloat($('input[data_type="goods_weight"]').eq(0).val());
  700. $('input[name="goods_weight"]').val(isNaN(_weight) ? '' : _weight);
  701. }
  702. // 计算价格
  703. function computePrice() {
  704. // 计算最低价格
  705. var _price = 0; var _price_sign = false;
  706. $('input[data_type="price"]').each(function () {
  707. if ($(this).val() != '' && $(this)) {
  708. if (!_price_sign) {
  709. _price = parseFloat($(this).val());
  710. _price_sign = true;
  711. } else {
  712. _price = (parseFloat($(this).val()) > _price) ? _price : parseFloat($(this).val());
  713. }
  714. }
  715. });
  716. $('input[name="g_price"]').val(number_format(_price, 2));
  717. discountCalculator(); // 计算折扣
  718. }
  719. // 计算折扣
  720. function discountCalculator() {
  721. var _price = parseFloat($('input[name="g_price"]').val());
  722. var _marketprice = parseFloat($('input[name="g_marketprice"]').val());
  723. if ((!isNaN(_price) && _price != 0) && (!isNaN(_marketprice) && _marketprice != 0)) {
  724. var _discount = parseInt(_price / _marketprice * 100);
  725. $('input[name="g_discount"]').val(_discount);
  726. }
  727. }
  728. //获得商品名称
  729. function getBrandName() {
  730. var brand_name = $('select[name="b_id"] > option:selected').html();
  731. $('input[name="b_name"]').val(brand_name);
  732. }
  733. //修改相关的颜色名称
  734. function change_img_name(Obj) {
  735. var S = Obj.parents('li').find('input[type="checkbox"]');
  736. S.val(Obj.val());
  737. var V = $('tr[dstype="file_tr_' + S.attr('ds_type') + '"]');
  738. V.find('span[dstype="pv_name"]').html(Obj.val());
  739. V.find('input[type="file"]').attr('name', Obj.val());
  740. }
  741. // 商品属性
  742. function attr_selected() {
  743. $('select[ds_type="attr_select"] option:selected').each(function () {
  744. id = $(this).attr('ds_type');
  745. name = $(this).parents('select').attr('attr').replace(/__NC__/g, id);
  746. $(this).parents('select').attr('name', name);
  747. });
  748. }
  749. // 验证店铺分类是否重复
  750. function checkSGC($val) {
  751. var _return = true;
  752. $('.sgcategory').each(function () {
  753. if ($val != 0 && $val == $(this).val()) {
  754. _return = false;
  755. }
  756. });
  757. return _return;
  758. }
  759. /* 插入商品图片 */
  760. function insert_img(name, src) {
  761. $('input[dstype="goods_image"]').val(name);
  762. $('img[dstype="goods_image"]').attr('src', src);
  763. }
  764. /* 插入商品视频 */
  765. function insert_video(name, src) {
  766. $('input[dstype="goodsvideo_name"]').val(name);
  767. $('video[dstype="goodsvideo_name"]').attr('src', src);
  768. }
  769. /* 插入编辑器 */
  770. function insert_editor(file_path) {
  771. ue.execCommand('insertimage', { src: file_path });
  772. }
  773. function setArea(area1, area2) {
  774. $('#province_id').val(area1).change();
  775. $('#city_id').val(area2);
  776. }
  777. // 插入品牌
  778. function insertBrand(param, search) {
  779. $('div[dstype="brandList"]').show();
  780. $('div[dstype="noBrandList"]').hide();
  781. var _ul = $('ul[dstype="brand_list"]');
  782. _ul.html('');
  783. if ($.isEmptyObject(param)) {
  784. $('div[dstype="brandList"]').hide();
  785. $('div[dstype="noBrandList"]').show().find('strong').html(search);
  786. return false;
  787. }
  788. $.each(param, function (i, n) {
  789. $('<li data-id="' + n.brand_id + '" data-name="' + n.brand_name + '"><em>' + n.brand_initial + '</em>' + n.brand_name + '</li>').appendTo(_ul);
  790. });
  791. //搜索品牌列表滚条绑定
  792. $('div[dstype="brandList"]').perfectScrollbar('update');
  793. }