goods.html 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title></title>
  5. #parse("sys/header.html")
  6. <style>
  7. .upload-list {
  8. display: inline-block;
  9. width: 60px;
  10. height: 60px;
  11. text-align: center;
  12. line-height: 60px;
  13. border: 1px solid transparent;
  14. border-radius: 4px;
  15. overflow: hidden;
  16. background: #fff;
  17. position: relative;
  18. box-shadow: 0 1px 1px rgba(0, 0, 0, .2);
  19. margin-right: 4px;
  20. }
  21. .upload-list img {
  22. width: 100%;
  23. height: 100%;
  24. }
  25. .upload-list-cover {
  26. display: none;
  27. position: absolute;
  28. top: 0;
  29. bottom: 0;
  30. left: 0;
  31. right: 0;
  32. background: rgba(0, 0, 0, .6);
  33. }
  34. .upload-list:hover .upload-list-cover {
  35. display: block;
  36. }
  37. .upload-list-cover i {
  38. color: #fff;
  39. font-size: 20px;
  40. cursor: pointer;
  41. margin: 0 2px;
  42. }
  43. .hselect {
  44. margin: 0;
  45. padding: 0;
  46. }
  47. .ui-jqgrid .ui-jqgrid-bdiv {
  48. border-top: 1px solid #E1E1E1;
  49. overflow-x: auto;
  50. }
  51. .frozen-div, .frozen-bdiv {
  52. background-color: #E4E6E9;/*与网页背景色一致*/
  53. }
  54. </style>
  55. </head>
  56. <body>
  57. <div id="rrapp" v-cloak>
  58. <div v-show="showList">
  59. <Row :gutter="16">
  60. <div class="search-group">
  61. <i-col span="3">
  62. <i-select v-model="q.merchSn" placeholder="商户编号" filterable label-in-value>
  63. <i-option v-for="merch in queryMerch" :value="merch.merchSn"
  64. :key="merch.merchSn">{{merch.merchName}}
  65. </i-option>
  66. </i-select>
  67. </i-col>
  68. <i-col span="3">
  69. <i-select v-model="q.thirdPartyMerchCode" placeholder="第三方商户" label-in-value>
  70. <i-option v-for="thirdMerchant in thirdMerchantBizViewList" :value="thirdMerchant.thirdPartyMerchCode" :key="thirdMerchant.thirdPartyMerchCode">{{thirdMerchant.thirdPartyMerchName}}</i-option>
  71. </i-select>
  72. </i-col>
  73. <i-col span="3">
  74. <i-input v-model="q.goodsSn" @on-enter="query" placeholder="商品编码"/>
  75. </i-col>
  76. <i-col span="3">
  77. <i-input v-model="q.prodBarcode" @on-enter="query" placeholder="产品条码"/>
  78. </i-col>
  79. <i-col span="3">
  80. <i-input v-model="q.name" @on-enter="query" placeholder="名称"/>
  81. </i-col>
  82. <!-- <i-col span="3">-->
  83. <!-- <i-input v-model="q.englishName" @on-enter="query" placeholder="英文名称"/>-->
  84. <!-- </i-col>-->
  85. <!--<i-col span="3">-->
  86. <!--<i-input v-model="q.plu" @on-enter="query" placeholder="PLU"/>-->
  87. <!--</i-col>-->
  88. <i-col span="3">
  89. <i-select v-model="q.goodsBizType" placeholder="货品业务类型"
  90. label-in-value>
  91. <i-option v-for="macro in macros" :value="macro.value" :key="macro.id">{{macro.name}}
  92. </i-option>
  93. </i-select>
  94. </i-col>
  95. <i-col span="3">
  96. <Date-picker v-model="q.lastSaleTime" placeholder="未销售时间至今"/>
  97. </i-col>
  98. <!--
  99. <i-col span="3">
  100. <i-select v-model="q.category" placeholder="商品分类" filterable @on-change="changeQueryCategories"
  101. label-in-value>
  102. <i-option v-for="category in queryCategories" :value="category.id"
  103. :key="categoqry.id">{{category.name}}
  104. </i-option>
  105. </i-select>
  106. </i-col>
  107. <i-col span="3">
  108. <i-select v-model="q.categoryTwo" placeholder="商品二级分类" filterable label-in-value>
  109. <i-option v-for="category in queryCategoriesTwo" :value="category.id"
  110. :key="category.id">{{category.name}}
  111. </i-option>
  112. </i-select>
  113. </i-col>-->
  114. <i-button @click="query">查询</i-button>
  115. <i-button @click="reloadSearch">重置</i-button>
  116. </div>
  117. <div class="buttons-group" style="width: 100%;margin-top: 8px; padding-left: 10px;">
  118. #if($shiro.hasPermission("goods:export"))
  119. <i-button type="primary" @click="exportGoods"><i class="fa fa-cloud-download"></i>&nbsp;导出</i-button>
  120. #end
  121. #if($shiro.hasPermission("goods:save"))
  122. <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
  123. #end
  124. #if($shiro.hasPermission("goods:update"))
  125. <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
  126. #end
  127. #if($shiro.hasPermission("goods:delete"))
  128. <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
  129. #end
  130. #if($shiro.hasPermission("goods:unSaleBatch"))
  131. <i-button type="primary" @click="enSale"><i class="fa fa-hand-o-up"></i>&nbsp;上架</i-button>
  132. <i-button type="dashed" @click="unSale"><i class="fa fa-hand-o-down"></i>&nbsp;下架</i-button>
  133. #end
  134. <!-- <i-button type="primary" @click="syncGoodsRate"><i class="fa fa-pencil-square-o"></i>&nbsp;选择同步税率</i-button>-->
  135. <!-- <i-button type="primary" @click="syncGoodsRateAll"><i class="fa fa-pencil-square-o"></i>&nbsp;全量同步税率</i-button>-->
  136. <!-- <i-button type="primary" @click="checkGoodsPrice"><i class="fa fa-pencil-square-o"></i>&nbsp;校验产品价格</i-button>-->
  137. <!--<i-button type="info" @click="goodsExport"><i class="fa fa-plus"></i>&nbsp;商品导入</i-button>-->
  138. <!--<i-button type="info" @click="sameGoodsExport"><i class="fa fa-plus"></i>&nbsp;普货商品导入</i-button>-->
  139. #if($shiro.hasPermission("goods:upload"))
  140. <i-col style="display: inline-grid;">
  141. <Upload :show-upload-list="false" :on-success="uploadExcelSuccess" :on-error="uploadExcelError" :on-format-error="uploadExcelFormatError"
  142. :on-progress="uploadExcelProgress"
  143. :format="['xls','xlsx']"
  144. action="../goods/upload">
  145. <i-button type="ghost" icon="ios-cloud-upload-outline">商品导入</i-button>
  146. </Upload>
  147. </i-col>
  148. #end
  149. <!-- <i-col style="display: inline-grid;">-->
  150. <!-- <Upload :show-upload-list="false" :on-success="uploadExcelSuccess" :on-error="uploadExcelError" :on-format-error="uploadExcelFormatError"-->
  151. <!-- :on-progress="uploadExcelProgress"-->
  152. <!-- :format="['xls','xlsx']"-->
  153. <!-- action="../goods/uploadByCover">-->
  154. <!-- <i-button type="ghost" icon="ios-cloud-upload-outline">商品导入(修改库存)</i-button>-->
  155. <!-- </Upload>-->
  156. <!-- </i-col>-->
  157. <!-- #if($shiro.hasPermission("goods:generalGoodsUpload"))-->
  158. <!-- <i-col style="display: inline-grid;">-->
  159. <!-- <Upload :show-upload-list="false" :on-success="uploadExcelSuccess" :on-error="uploadExcelError" :on-format-error="uploadExcelFormatError"-->
  160. <!-- :on-progress="uploadExcelProgress"-->
  161. <!-- :format="['xls','xlsx','zip']"-->
  162. <!-- action="../goods/generalGoodsUpload">-->
  163. <!-- <i-button type="ghost" icon="ios-cloud-upload-outline">普货商品导入</i-button>-->
  164. <!-- </Upload>-->
  165. <!-- </i-col>-->
  166. <i-col style="display: inline-grid;">
  167. <Upload :show-upload-list="false" :on-success="uploadExcelSuccess" :on-error="uploadExcelError" :on-format-error="uploadExcelFormatError"
  168. :on-progress="uploadExcelProgress"
  169. :format="['xls','xlsx','zip']"
  170. action="../goods/generalGoodsImgUpload">
  171. <i-button type="ghost" icon="ios-cloud-upload-outline">商品图片批量导入</i-button>
  172. </Upload>
  173. </i-col>
  174. <!-- <i-col style="display: inline-grid;">-->
  175. <!-- <Upload :show-upload-list="false" :on-success="uploadExcelSuccess" :on-error="uploadExcelError" :on-format-error="uploadExcelFormatError"-->
  176. <!-- :on-progress="uploadExcelProgress"-->
  177. <!-- :format="['xls','xlsx','zip']"-->
  178. <!-- action="../goods/generalGoodsImgUploadByZip">-->
  179. <!-- <i-button type="ghost" icon="ios-cloud-upload-outline">商品图片(文件夹)批量导入</i-button>-->
  180. <!-- </Upload>-->
  181. <!-- </i-col>-->
  182. #end
  183. #if($shiro.hasPermission("goods:down"))
  184. &nbsp;&nbsp;&nbsp;&nbsp;
  185. <a href="../statics/file/goods_export_yyyy_mm_dd_v1.0.0.xls">商品模板下载</a>&nbsp;&nbsp;&nbsp;&nbsp;
  186. <!-- <a href="../statics/file/goods_img.zip">商品图片批量导入示例下载</a>-->
  187. #end
  188. </div>
  189. </Row>
  190. <table id="jqGrid" ref="selection" ></table>
  191. <div id="jqGridPager"><div class="ui-jqgrid-bdiv frozen-div"></div></div>
  192. </div>
  193. <Card v-show="!showList">
  194. <p slot="title">{{title}}</p>
  195. <i-form ref="formValidate" :model="goods" :rules="ruleValidate" :label-width="140">
  196. <Tabs value="name1">
  197. <Tab-Pane label="通用信息" name="name1">
  198. <!--<Row>-->
  199. <!--<i-col span="16" style="margin-top: -10px;">-->
  200. <!--<span style="margin-left: 140px;color: red;font-size: 12px;">* 修改商品二级分类将清空商品参数列表</span>-->
  201. <!--</i-col>-->
  202. <!--</Row>-->
  203. <!--<i-form ref="formValidate" :model="goods" :rules="ruleValidate" :label-width="80">-->
  204. <Form-item label="商户" prop="merchSn">
  205. <i-select v-model="goods.merchSn" filterable placeholder="商户" @on-change="showMerchInfo" label-in-value v-show="isOperator=='add'">
  206. <i-option v-for="merch in merchList" :value="merch.merchSn" :key="merch.merchSn">{{merch.merchName}}</i-option>
  207. </i-select>
  208. <i-select v-model="goods.merchSn" filterable placeholder="商户" @on-change="showMerchInfo" disabled label-in-value v-show="isOperator=='update'">
  209. <i-option v-for="merch in merchList" :value="merch.merchSn" :key="merch.merchSn">{{merch.merchName}}</i-option>
  210. </i-select>
  211. </Form-item>
  212. <Form-item label="第三方商户" prop="thirdPartyMerchCode">
  213. <i-select v-model="goods.thirdPartyMerchCode" placeholder="第三方商户" @on-change="showStockShare" label-in-value v-show="isOperator=='add'">
  214. <i-option v-for="thirdMerchant in thirdMerchantBizList" :value="thirdMerchant.thirdPartyMerchCode" :key="thirdMerchant.thirdPartyMerchCode">{{thirdMerchant.thirdPartyMerchName}}</i-option>
  215. </i-select>
  216. <i-select v-model="goods.thirdPartyMerchCode" placeholder="第三方商户" @on-change="showStockShare" disabled label-in-value v-show="isOperator=='update'" >
  217. <i-option v-for="thirdMerchant in thirdMerchantBizList" :value="thirdMerchant.thirdPartyMerchCode" :key="thirdMerchant.thirdPartyMerchCode">{{thirdMerchant.thirdPartyMerchName}}</i-option>
  218. </i-select>
  219. </Form-item>
  220. <Form-item label="货品业务类型" prop="goodsBizType" >
  221. <i-select v-model="goods.goodsBizType" placeholder="货品业务类型"
  222. label-in-value style="width: 268px;" @on-change="changeGoodsBizType">
  223. <i-option v-for="macro in macros" :value="macro.value" :key="macro.id">{{macro.name}}
  224. </i-option>
  225. </i-select>
  226. </Form-item>
  227. <Form-item label="商品类型" prop="categoryId" style="height: 30px;">
  228. <!--<i-input v-model="goods.categoryName" @on-click="categoryTree" icon="eye" readonly="readonly" placeholder="商品类型"/>-->
  229. <i-select v-model="goods.attributeCategory" placeholder="商品分类" @on-change="changeCategories"
  230. label-in-value style="width: 268px;height: 30px;">
  231. <i-option v-for="category in categories" :value="category.id"
  232. :key="category.id">{{category.name}}
  233. </i-option>
  234. </i-select>
  235. <i-select v-model="goods.categoryId" placeholder="商品二级分类"
  236. label-in-value style="width: 268px;height: 30px;">
  237. <i-option v-for="category in categoriesTwo" :value="category.id"
  238. :key="category.id">{{category.name}}
  239. </i-option>
  240. </i-select>
  241. </Form-item>
  242. <Form-item label="商品编码" prop="goodsSn">
  243. <i-input v-model="goods.goodsSn" placeholder="商品编码"/>
  244. </Form-item>
  245. <Form-item label="名称" prop="name">
  246. <i-input v-model="goods.name" placeholder="名称"/>
  247. </Form-item>
  248. <!-- <Form-item label="英文名称" prop="englishName">-->
  249. <!-- <i-input v-model="goods.englishName" placeholder="英文名称"/>-->
  250. <!-- </Form-item>-->
  251. <!-- <Form-item label="PLU" prop="plu">-->
  252. <!-- <i-input v-model="goods.plu" placeholder="PLU"/>-->
  253. <!-- </Form-item>-->
  254. <Form-item label="商品单位" prop="goodsUnit">
  255. <i-input v-model="goods.goodsUnit" placeholder="商品单位" style="width: 268px;"/>
  256. </Form-item>
  257. <!--<Form-item label="类别" prop="attributeCategory" style="width: 268px;">
  258. <i-select v-model="goods.attributeCategory" filterable label-in-value>
  259. <i-option v-for="attributeCategory in attributeCategories" :value="attributeCategory.id" :key="attributeCategory.id">{{attributeCategory.name}}
  260. </i-option>
  261. </i-select>
  262. </Form-item>-->
  263. <Form-item label="SKU" prop="sku">
  264. <i-input v-model="goods.sku" placeholder="SKU" style="width: 268px;"/>
  265. </Form-item>
  266. <Form-item label="产品条码" prop="prodBarcode">
  267. <i-input v-model="goods.prodBarcode" placeholder="产品条码"/>
  268. </Form-item>
  269. <Form-item label="供应商" prop="supplierId">
  270. <i-select v-model="goods.supplierId" placeholder="供应商"
  271. label-in-value style="width: 268px;">
  272. <i-option v-for="supplier in suppliers" :value="supplier.id" :key="supplier.id">{{supplier.childSupplierName}}
  273. </i-option>
  274. </i-select>
  275. </Form-item>
  276. <!--<Form-item label="运费模版" prop="freightId">
  277. <i-select v-model="goods.freightId" placeholder="运费模版"
  278. label-in-value style="width: 268px;">
  279. <i-option v-for="freight in freights" :value="freight.id" :key="freight.id">{{freight.name}}
  280. </i-option>
  281. </i-select>
  282. </Form-item>-->
  283. <!--<Form-item label="市场价" prop="marketPrice">-->
  284. <!--<Input-number :min="0.01" :step="0.01" v-model="goods.marketPrice" placeholder="市场价" style="width: 268px;"/>-->
  285. <!--</Form-item>-->
  286. <!--<Form-item label="零售价" prop="retailPrice">-->
  287. <!--<Input-number :min="0.01" :step="0.01" v-model="goods.retailPrice" placeholder="零售价" style="width: 268px;"/>-->
  288. <!--</Form-item>-->
  289. <!--<Form-item label="商品总库存" prop="goodsNumber" v-show="isStockShare">-->
  290. <!--<Input-number :min="1" :step="1" v-model="goods.goodsNumber" placeholder="商品总库存" style="width: 268px;"/>-->
  291. <!--</Form-item>-->
  292. <!-- <Form-item label="日常价" prop="dailyPrice">-->
  293. <!-- <Input-number :min="0.01" :step="0.01" v-model="goods.dailyPrice" placeholder="日常价" style="width: 268px;"/>-->
  294. <!-- </Form-item>-->
  295. <!-- <Form-item label="成本价" prop="costPrice">-->
  296. <!-- <Input-number :min="0.01" :step="0.01" v-model="goods.costPrice" placeholder="成本价" style="width: 268px;"/>-->
  297. <!-- </Form-item>-->
  298. <Form-item label="商品总库存" prop="goodsNumber">
  299. <Input-number :min="0" :step="1" v-model="goods.goodsNumber" placeholder="商品总库存" style="width: 268px;"/>
  300. </Form-item>
  301. <Form-item label="商品税率(0.00)" prop="goodsRate">
  302. <Input-number :min="0.001" :step="0.001" v-model="goods.goodsRate" placeholder="商品税率" style="width: 268px;"/>
  303. </Form-item>
  304. <Row>
  305. <i-col span="16">
  306. <Form-item label="商品主图" prop="primaryPicUrl">
  307. <i-input v-model="goods.primaryPicUrl" placeholder="商品主图" readonly/>
  308. </Form-item>
  309. </i-col>
  310. <i-col span="4">
  311. <Form-item :label-width="1">
  312. <Upload style="width: 300px;" action="../sys/oss/upload" :format="['jpg','jpeg','png']"
  313. max-size="100"
  314. :on-success="handleSuccessPicUrl" :on-format-error="handleFormatError"
  315. :show-upload-list="false"
  316. :on-exceeded-size="handleMaxSize">
  317. <i-button icon="ios-cloud-upload-outline">上传图片</i-button>
  318. </Upload>
  319. </Form-item>
  320. </i-col>
  321. <i-col span="4">
  322. <Form-item :label-width="1">
  323. <i-button icon="eye" @click="eyeImagePicUrl">预览图片</i-button>
  324. </Form-item>
  325. </i-col>
  326. </Row>
  327. <Row>
  328. <i-col span="16" style="margin-top: -30px;">
  329. <span style="margin-left: 140px;color: red;font-size: 12px;">* 尺寸建议200x200(正方形模式)像素以内,大小100k以内</span>
  330. </i-col>
  331. </Row>
  332. <Row>
  333. <i-col span="16">
  334. <Form-item label="商品列表图" prop="listPicUrl">
  335. <i-input v-model="goods.listPicUrl" placeholder="商品列表图" readonly/>
  336. </Form-item>
  337. </i-col>
  338. <i-col span="4">
  339. <Form-item :label-width="1">
  340. <Upload style="width: 300px;" action="../sys/oss/upload" :format="['jpg','jpeg','png']"
  341. max-size="100"
  342. :on-success="handleSuccessListPicUrl" :on-format-error="handleFormatError"
  343. :show-upload-list="false"
  344. :on-exceeded-size="handleMaxSize">
  345. <i-button icon="ios-cloud-upload-outline">上传图片</i-button>
  346. </Upload>
  347. </Form-item>
  348. </i-col>
  349. <i-col span="4">
  350. <Form-item :label-width="1">
  351. <i-button icon="eye" @click="eyeImageListPicUrl">预览图片</i-button>
  352. </Form-item>
  353. </i-col>
  354. </Row>
  355. <Row>
  356. <i-col span="16" style="margin-top: -30px;">
  357. <span style="margin-left: 140px;color: red;font-size: 12px;">* 尺寸建议200x200(正方形模式)像素以内,大小100k以内</span>
  358. </i-col>
  359. </Row>
  360. <!-- <Row>-->
  361. <!-- <i-col span="16">-->
  362. <!-- <Form-item label="上传视频" prop="listPicUrl">-->
  363. <!-- <i-input v-model="goods.videoUrl" placeholder="主视频" readonly/>-->
  364. <!-- </Form-item>-->
  365. <!-- </i-col>-->
  366. <!-- <i-col span="4">-->
  367. <!-- <Form-item :label-width="1">-->
  368. <!-- <Upload style="width: 300px;" action="../sys/oss/upload" :format="['mp4']"-->
  369. <!-- max-size="1024"-->
  370. <!-- :on-success="handleSuccessListVideoUrl" :on-format-error="handleVideoFormatError"-->
  371. <!-- :show-upload-list="false"-->
  372. <!-- :on-exceeded-size="handleVideoMaxSize">-->
  373. <!-- <i-button icon="ios-cloud-upload-outline">本地上传</i-button>-->
  374. <!-- </Upload>-->
  375. <!-- </Form-item>-->
  376. <!-- </i-col>-->
  377. <!-- <i-col span="4">-->
  378. <!-- <Form-item :label-width="1">-->
  379. <!-- <i-button icon="eye" @click="eyeImageListVideoUrl">预览视频</i-button>-->
  380. <!-- </Form-item>-->
  381. <!-- </i-col>-->
  382. <!-- </Row>-->
  383. <!-- <Row>-->
  384. <!-- <i-col span="16" style="margin-top: -30px;">-->
  385. <!-- <span style="margin-left: 140px;color: red;font-size: 12px;">* 视频不能超过1M,视频时限20秒内,支持mp4视频格式</span>-->
  386. <!-- </i-col>-->
  387. <!-- </Row>-->
  388. <!--</i-form>-->
  389. </Tab-Pane>
  390. <Tab-Pane label="海关信息" name="name2">
  391. <!--<i-form ref="formValidate" :model="goods" :rules="ruleValidate" :label-width="80">-->
  392. <!-- <Form-item label="产品品牌" prop="brand">-->
  393. <!-- <i-input v-model="goods.brand" placeholder="产品品牌"/>-->
  394. <!-- </Form-item>-->
  395. <Form-item label="品牌" prop="brandId">
  396. <i-select v-model="goods.brandId" placeholder="品牌"
  397. label-in-value style="width: 268px;">
  398. <i-option v-for="brand in brands" :value="brand.id" :key="brand.id">{{brand.name}}
  399. </i-option>
  400. </i-select>
  401. </Form-item>
  402. <!-- <Form-item label="海关备案编号" prop="cusRecCode">-->
  403. <!-- <i-input v-model="goods.cusRecCode" placeholder="海关备案编号"/>-->
  404. <!-- </Form-item>-->
  405. <Form-item label="计量单位" prop="unitCode">
  406. <i-select v-model="goods.unitCode" filterable placeholder="计量单位"
  407. label-in-value>
  408. <i-option v-for="cusUnitCode in cusUnitCodeList" :value="cusUnitCode.code" :key="cusUnitCode.sn">{{cusUnitCode.name}}</i-option>
  409. </i-select>
  410. </Form-item>
  411. <!-- <Form-item label="海关商品编码" prop="cusGoodsCode">-->
  412. <!-- <i-input v-model="goods.cusGoodsCode" placeholder="海关商品编码"/>-->
  413. <!-- </Form-item>-->
  414. <!-- <Form-item label="国检规格型号" prop="ciqProdModel" >-->
  415. <!-- <i-input v-model="goods.ciqProdModel" placeholder="国检规格型号"/>-->
  416. <!-- </Form-item>-->
  417. <Form-item label="原产国" prop="oriCntCode">
  418. <i-select v-model="goods.oriCntCode" filterable placeholder="原产国"
  419. label-in-value>
  420. <i-option v-for="cusNationCode in cusNationCodeList" :value="cusNationCode.code" :key="cusNationCode.sn">{{cusNationCode.name}}</i-option>
  421. </i-select>
  422. </Form-item>
  423. <!-- <Form-item label="海关申报要素" prop="cusDeclEle">-->
  424. <!-- <i-input v-model="goods.cusDeclEle" placeholder="海关申报要素"/>-->
  425. <!-- </Form-item>-->
  426. <Form-item label="毛重,kg" prop="grossWeight">
  427. <Input-number :min="0" :step="0" v-model="goods.grossWeight" placeholder="毛重" style="width: 268px;"/>
  428. </Form-item>
  429. <Form-item label="净重,kg" prop="netWeight">
  430. <Input-number :min="0" :step="0" v-model="goods.netWeight" placeholder="净重" style="width: 268px;"/>
  431. </Form-item>
  432. <!--</i-form>-->
  433. </Tab-Pane>
  434. <!--<Tab-Pane label="规格" name="name3">
  435. &lt;!&ndash;<i-form ref="formValidate" :model="goods" :rules="ruleValidate" :label-width="80">&ndash;&gt;
  436. <table class="table table-bordered">
  437. <tr>
  438. <td style="text-align: center; width: 200px">编码</td>
  439. <td style="text-align: center; width: 100px">商品默认</td>
  440. &lt;!&ndash;<td style="text-align: center; width: 100px">规格</td>&ndash;&gt;
  441. <td style="text-align: center;">规格说明</td>
  442. <td style="text-align: center; width: 90px">操作</td>
  443. </tr>
  444. <tr v-for="(item,index) in productEntityList" v-show="item.isDelete==0">
  445. <td>
  446. <i-input v-model="item.goodsSn" placeholder="商品编码"/>
  447. </td>
  448. <td>
  449. <select class="hselect" v-model="item.goodsDefault" filterable label-in-value>
  450. <option value="1">是</option>
  451. <option value="0">否</option>
  452. </select>
  453. </td>
  454. <td>
  455. <i-input v-model="item.goodsSpecificationNameValue" placeholder="规格说明"/>
  456. </td>
  457. <td>
  458. <button v-if="index == 0" class="btn btn-primary btn-sm" type="button"
  459. @click="addSpeRow">
  460. <i class="fa fa-plus"></i>
  461. </button>
  462. <button class="btn red btn-sm" type="button" @click="delSpeRow(index)">
  463. <i class="fa fa-trash-o"></i>
  464. </button>
  465. </td>
  466. </tr>
  467. </table>
  468. &lt;!&ndash;</i-form>&ndash;&gt;
  469. </Tab-Pane>-->
  470. <Tab-Pane label="商品详细描述" name="name4" >
  471. <!-- <template>-->
  472. <!-- <div class="upload-list" v-for="item in uploadList">-->
  473. <!-- <template v-if="item.status === 'finished'">-->
  474. <!-- <img :src="item.imgUrl"/>-->
  475. <!-- <div class="upload-list-cover">-->
  476. <!-- <Icon type="ios-eye-outline" @click.native="handleView(item.imgUrl)"></Icon>-->
  477. <!-- <Icon type="ios-trash-outline" @click.native="handleRemove(item)"></Icon>-->
  478. <!-- </div>-->
  479. <!-- </template>-->
  480. <!-- <template v-else>-->
  481. <!-- <Progress v-if="item.showProgress" :percent="item.percentage" hide-info></Progress>-->
  482. <!-- </template>-->
  483. <!-- </div>-->
  484. <!-- <Upload-->
  485. <!-- ref="upload"-->
  486. <!-- :show-upload-list="false"-->
  487. <!-- :default-file-list="uploadList"-->
  488. <!-- :on-success="handleSuccess"-->
  489. <!-- :format="['jpg','jpeg','png']"-->
  490. <!-- :max-size="100"-->
  491. <!-- :on-format-error="handleFormatError"-->
  492. <!-- :on-exceeded-size="handleMaxSize"-->
  493. <!-- :before-upload="handleBeforeUpload"-->
  494. <!-- multiple-->
  495. <!-- type="drag"-->
  496. <!-- action="../sys/oss/upload"-->
  497. <!-- style="display: inline-block;width:58px;">-->
  498. <!-- <div style="width: 58px;height:58px;line-height: 58px;">-->
  499. <!-- <Icon type="camera" size="20"></Icon>-->
  500. <!-- </div>-->
  501. <!-- </Upload>-->
  502. <!-- <Modal title="查看图片" v-model="visible">-->
  503. <!-- <img :src="imgName" v-if="visible" style="width: 100%"/>-->
  504. <!-- </Modal>-->
  505. <!-- <div style="display: inline-block;">-->
  506. <!-- <span style="color: red;font-size: 20px;display: block;">(仅用于线上业务商品详情录入)</span>-->
  507. <!-- <span style="color: red;font-size: 12px;">* 商品详情轮播图,尺寸建议750x750(正方形模式)像素以内,大小100k以内</span>-->
  508. <!-- </div>-->
  509. <!-- </template>-->
  510. <div id="goodsDesc"></div>
  511. </Tab-Pane>
  512. <!--<Tab-Pane label="参数" name="name5">-->
  513. <!--&lt;!&ndash;<i-form ref="formValidate" :model="goods" :rules="ruleValidate" :label-width="80">&ndash;&gt;-->
  514. <!---->
  515. <!--&lt;!&ndash;</i-form>&ndash;&gt;-->
  516. <!--</Tab-Pane>-->
  517. <Tab-Pane label="其他信息" name="name6">
  518. <!--<i-form ref="formValidate" :model="goods" :rules="ruleValidate" :label-width="80">-->
  519. <Form-item label="排序" prop="sortOrder">
  520. <Input-number :min="1" :step="1" v-model="goods.sortOrder" placeholder="排序" style="width: 188px;"/>
  521. </Form-item>
  522. <Form-item label="上架" prop="isOnSale">
  523. <Radio-group v-model="goods.isOnSale">
  524. <Radio label="0">
  525. <span>否</span>
  526. </Radio>
  527. <Radio label="1">
  528. <span>是</span>
  529. </Radio>
  530. </Radio-group>
  531. </Form-item>
  532. <Form-item v-if="showInput" label="热销" prop="isHot">
  533. <Radio-group v-model="goods.isHot">
  534. <Radio label="0">
  535. <span>否</span>
  536. </Radio>
  537. <Radio label="1">
  538. <span>是</span>
  539. </Radio>
  540. </Radio-group>
  541. </Form-item>
  542. <Form-item label="推广描述" prop="promotionDesc">
  543. <i-input v-model="goods.promotionDesc" placeholder="推广描述"/>
  544. </Form-item>
  545. <Form-item label="简明介绍" prop="goodsBrief">
  546. <i-input v-model="goods.goodsBrief" placeholder="简明介绍"/>
  547. </Form-item>
  548. <!--</i-form>-->
  549. </Tab-Pane>
  550. </Tabs>
  551. </i-form>
  552. <div style="padding-left: 20px">
  553. <i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button>
  554. <i-button type="warning" @click="reload" style="margin-left: 8px"/>返回</i-button>
  555. <!--<i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button>-->
  556. </div>
  557. </Card>
  558. </div>
  559. <!-- 选择类型 -->
  560. <div id="categoryLayer" style="display: none;padding: 10px;">
  561. <ul id="categoryTree" class="ztree"></ul>
  562. </div>
  563. <script src="${rc.contextPath}/js/shop/goods.js?_${date.systemTime}"></script>
  564. </body>
  565. </html>