elementAlert.vue 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. <template>
  2. <alert @closeAlert="closeAlert" :AlertTitle="AlertTitle" v-if="showAlert">
  3. <ul class="form-list">
  4. <li class="clearfix">
  5. <div class="pull-left name"><span v-if="IslookOrUpdate !== 'look'">*</span>商品名称</div>
  6. <div class="pull-left">
  7. <template v-if="IslookOrUpdate !== 'look'">
  8. <el-input placeholder="请输入商品名称" v-model="chooseItem.commodityName" clearable class="input-text">
  9. </el-input>
  10. </template>
  11. <template v-else>
  12. <div class="text">{{chooseItem.commodityName}}</div>
  13. </template>
  14. </div>
  15. </li>
  16. <li class="clearfix">
  17. <div class="pull-left name"><span v-if="IslookOrUpdate !== 'look'">*</span>品牌</div>
  18. <div class="pull-left">
  19. <template v-if="IslookOrUpdate !== 'look'">
  20. <el-input placeholder="请输入品牌" v-model="chooseItem.brand" clearable class="input-text">
  21. </el-input>
  22. </template>
  23. <template v-else>
  24. <div class="text">{{chooseItem.brand}}</div>
  25. </template>
  26. </div>
  27. </li>
  28. <li class="clearfix">
  29. <div class="pull-left name"><span v-if="IslookOrUpdate !== 'look'">*</span>规格型号</div>
  30. <div class="pull-left">
  31. <template v-if="IslookOrUpdate !== 'look'">
  32. <el-input placeholder="请输入规格型号" v-model="chooseItem.cmpCode" clearable class="input-text">
  33. </el-input>
  34. </template>
  35. <template v-else>
  36. <div class="text">{{chooseItem.cmpCode}}</div>
  37. </template>
  38. </div>
  39. </li>
  40. <li class="clearfix">
  41. <div class="pull-left name"><span v-if="IslookOrUpdate !== 'look'">*</span>海关编码</div>
  42. <div class="pull-left">
  43. <template v-if="IslookOrUpdate !== 'look'">
  44. <el-input placeholder="请输入海关编码" v-model="chooseItem.customerHouseCode" clearable class="input-text">
  45. </el-input>
  46. </template>
  47. <template v-else>
  48. <div class="text">{{chooseItem.customerHouseCode}}</div>
  49. </template>
  50. </div>
  51. </li>
  52. <li class="clearfix">
  53. <div class="pull-left name"><span v-if="IslookOrUpdate !== 'look'">*</span>规格书</div>
  54. <div class="pull-left">
  55. <a :href="chooseItem.dataSheetUrl" class="guigeshu" target="_blank" v-if="chooseItem.dataSheetUrl">
  56. </a>
  57. <input v-if="IslookOrUpdate !== 'look'" type="file" accept="image/jpeg,image/jpg,image/gif,image/bmp,image/png,.pdf" @change="upload" style="display: inline-block;vertical-align: middle">
  58. <img src="/nodownload.png" width="39px" height="39px" v-if="IslookOrUpdate === 'look' && !chooseItem.dataSheetUrl"/>
  59. <!--<template v-if="IslookOrUpdate !== 'look'">-->
  60. <!--<el-input placeholder="请输入海关编码" v-model="chooseItem.customerHouseCode" clearable class="input-text">-->
  61. <!--</el-input>-->
  62. <!--</template>-->
  63. <!--<template v-else>-->
  64. <!--<div class="text">{{chooseItem.customerHouseCode}}</div>-->
  65. <!--</template>-->
  66. </div>
  67. </li>
  68. <li class="clearfix">
  69. <div class="pull-left name"><span v-if="IslookOrUpdate === 'add'">*</span>申报要素</div>
  70. <div class="pull-left">
  71. <template v-if="IslookOrUpdate !== 'look'">
  72. <el-input :rows="3" type="textarea" placeholder="请填写申报要素" v-model="chooseItem.description" clearable class="input-text">
  73. </el-input>
  74. </template>
  75. <template v-else>
  76. <div class="text">{{chooseItem.description}}</div>
  77. </template>
  78. </div>
  79. </li>
  80. <li class="hrefA" v-if="IslookOrUpdate !== 'look'">
  81. <a href="http://www.hs-bianma.com/" target="_blank">申报要素查询网址-通关网</a>
  82. </li>
  83. </ul>
  84. <div class="control-btn">
  85. <template v-if="IslookOrUpdate !== 'look'">
  86. <div class="save" @click="closeAlert('save')">保存</div>
  87. <div class="cancel" @click="closeAlert()">取消</div>
  88. </template>
  89. <template v-else>
  90. <div class="save" @click="closeAlert()">关闭</div>
  91. </template>
  92. </div>
  93. </alert>
  94. </template>
  95. <script>
  96. import { Alert } from '@/components/common'
  97. export default {
  98. props: {
  99. IslookOrUpdate: {
  100. type: String,
  101. default: 'update'
  102. },
  103. AlertTitle: {
  104. type: String,
  105. default: '新增申报要素'
  106. },
  107. chooseItem: {
  108. type: Object,
  109. default: {}
  110. }
  111. },
  112. components: {
  113. Alert
  114. },
  115. data() {
  116. return {
  117. showAlert: false,
  118. fileName: ''
  119. }
  120. },
  121. methods: {
  122. closeAlert(_tp) {
  123. if (_tp) {
  124. if (!this.chooseItem.commodityName || this.chooseItem.commodityName.trim() === '' ) {
  125. this.$message({
  126. type: 'error',
  127. message: '请填写商品名称'
  128. })
  129. }
  130. else if (!this.chooseItem.brand || this.chooseItem.brand.trim() === '') {
  131. this.$message({type: 'error',message: '请填写品牌'})
  132. }
  133. else if (!this.chooseItem.cmpCode || this.chooseItem.cmpCode.trim() === '') {
  134. this.$message({
  135. type: 'error',
  136. message: '请填写规格型号'
  137. })
  138. }
  139. else if (!this.chooseItem.customerHouseCode || this.chooseItem.customerHouseCode.trim() === '') {
  140. this.$message({
  141. type: 'error',
  142. message: '请填写海关编码'
  143. })
  144. }
  145. else if (!this.chooseItem.description || this.chooseItem.description.trim() === '') {
  146. this.$message({
  147. type: 'error',
  148. message: '请填写申报要素'
  149. })
  150. }
  151. else {
  152. this.$emit('closeAlert', _tp, this.chooseItem, this.files)
  153. this.files = null
  154. }
  155. } else {
  156. this.$emit('closeAlert', _tp, this.chooseItem, this.files)
  157. this.files = null
  158. }
  159. },
  160. upload (e) {
  161. this.fileName = e.target.value
  162. this.files = e.target.files[0]
  163. },
  164. hide() {
  165. this.showAlert = false
  166. },
  167. show() {
  168. this.showAlert = true
  169. }
  170. }
  171. }
  172. </script>
  173. <style lang="scss" scoped>
  174. li.hrefA{
  175. font-size: 12px;
  176. a {color: #0d5ffe !important;}
  177. margin-left: 100px;
  178. margin-bottom: 0px !important;
  179. margin-top: -20px;
  180. }
  181. .guigeshu {
  182. width: 39px;
  183. height:39px;
  184. background: url(/spirit.png) no-repeat 0px -100px;
  185. margin: 0 auto;
  186. cursor: pointer;
  187. display: inline-block;
  188. vertical-align: top;
  189. margin-right: 20px;
  190. }
  191. </style>