sellergoods_add_step2.js 29 KB

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