铝交易,微信公众号
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

450 lines
10 KiB

9 months ago
  1. <template>
  2. <view class="page">
  3. <navbar :title="titleList[titleIndex]" leftClick @leftClick="$utils.navigateBack"/>
  4. <view class="frame">
  5. <view class="title">
  6. <span
  7. style="width: 10rpx;height: 40rpx;background-color: #1f1c39;border-radius: 10rpx;overflow: hidden;"></span>
  8. <span>铝制品</span>
  9. </view>
  10. <view class="basic-info">
  11. <!--供应商名称-->
  12. <view class="item" v-if="titleIndex == 1">
  13. <view>供应商名称</view>
  14. <view>
  15. 华南铝业有限公司
  16. </view>
  17. </view>
  18. <!--商品规格-->
  19. <view class="item">
  20. <view>商品规格</view>
  21. <view>
  22. 铝制品(Al>96%)
  23. </view>
  24. </view>
  25. <!--<uv-divider text="" :hairline="true"></uv-divider>-->
  26. <!--提货地点-->
  27. <view class="currentRegion">
  28. <view>提货地点</view>
  29. <view @click.stop="selectAddr">
  30. <input class="input"
  31. disabled
  32. v-model="form.currentRegion" placeholder="请选择所在地区"></input>
  33. <view class="orientation">
  34. <!-- 定位 -->
  35. <img src="../../static/image/address/selectIcon.png"
  36. style="width:30rpx;height: 30rpx;margin:5rpx 5rpx 5rpx 5rpx;">
  37. </view>
  38. </view>
  39. </view>
  40. <!--详细地址-->
  41. <view class="item">
  42. <view>详细地址</view>
  43. <view>
  44. <input v-model="form.address" placeholder="请输入详细地址" clearable></input>
  45. </view>
  46. </view>
  47. <!--交货日期-->
  48. <view class="delivery-date">
  49. <view>交货日期</view>
  50. <view class="value">
  51. <view class="dateTimeCls">
  52. <view class="date" @click="startDateOpen">
  53. {{ form.deliveryDate }}
  54. <uv-datetime-picker ref="startDateRef" v-model="form.deliveryDate" mode="date"
  55. @confirm="startDateChange"></uv-datetime-picker>
  56. </view>
  57. <view class="img">
  58. >
  59. </view>
  60. </view>
  61. </view>
  62. </view>
  63. <!--暂定数量-->
  64. <view class="tentativeQuantity">
  65. <view class="key">暂定数量()</view>
  66. <view class="value">
  67. <uv-number-box></uv-number-box>
  68. </view>
  69. </view>
  70. <!--单价-->
  71. <view class="item">
  72. <view>单价</view>
  73. <view>
  74. <input disabled clearable placeholder="默认为铝品单价"></input>
  75. </view>
  76. </view>
  77. <!--&lt;!&ndash;履约保证金&ndash;&gt;-->
  78. <!--<view class="performanceBond">-->
  79. <!-- <view class="key">履约保证金</view>-->
  80. <!-- <view class="value">-->
  81. <!-- <input v-model="form.performanceBond" clearable></input>-->
  82. <!-- </view>-->
  83. <!--</view>-->
  84. <!--<view class="Tip">-->
  85. <!-- <span class="span">(单价*数量*2%)</span>-->
  86. <!--</view>-->
  87. <!--提交报价和提交审核-->
  88. <view class="btns">
  89. <span @click="confirmBtn" class="ljxd">
  90. {{titleIndex == 0? '提交报价' : '提交审核'}}
  91. </span>
  92. <span @click="contactUs" class="lxwm">
  93. 联系我们
  94. </span>
  95. <span class="tip">如有问题请联系我们</span>
  96. </view>
  97. </view>
  98. </view>
  99. <!-- 联系客服弹框 -->
  100. <customerServicePopup ref="customerServicePopup"/>
  101. </view>
  102. </template>
  103. <script>
  104. import topbar from "@/components/base/topbar.vue";
  105. import tabber from "@/components/base/tabbar.vue";
  106. import customerServicePopup from "@/components/config/customerServicePopup.vue";
  107. import Position from "@/utils/position";
  108. import dayjs from "dayjs";
  109. export default {
  110. name: "offer",
  111. components: {customerServicePopup, tabber, topbar},
  112. onLoad(options) {
  113. this.titleIndex = options.titleIndex;
  114. },
  115. data() {
  116. return {
  117. titleIndex:0,
  118. titleList:['供应商报价','供应商挂单'],
  119. form: {
  120. address: "",
  121. longitude: "",
  122. latitude: "",
  123. deliveryDate: dayjs(new Date()).format("YYYY-MM-DD"),
  124. }
  125. }
  126. },
  127. methods: {
  128. // 提交报价/提交审核
  129. confirmBtn() {
  130. console.log(this.form);
  131. },
  132. startDateChange(val) {
  133. this.$nextTick(() => {
  134. this.form.deliveryDate = dayjs(val.value).format("YYYY-MM-DD")
  135. });
  136. },
  137. startDateOpen() {
  138. this.$refs.startDateRef.open();
  139. },
  140. // 联系我们
  141. contactUs() {
  142. this.$refs.customerServicePopup.open()
  143. },
  144. //地图上选择地址
  145. selectAddr() {
  146. Position.getLocation(res => {
  147. Position.selectAddress(res.longitude, res.latitude, success => {
  148. this.setAddress(success)
  149. })
  150. })
  151. Position.getLocationDetail(res => {
  152. console.log(res);
  153. this.form.address = res
  154. })
  155. },
  156. },
  157. }
  158. </script>
  159. <style scoped lang="scss">
  160. .page {
  161. height: 100vh;
  162. .frame {
  163. background-color: #FFF;
  164. .title {
  165. display: flex;
  166. font-size: 30rpx;
  167. font-weight: 700;
  168. padding: 0rpx 0 0rpx 20rpx;
  169. margin: 20rpx 0 0 0;
  170. > span:nth-of-type(1) {
  171. margin: 4rpx 0 0 8rpx;
  172. background-color: #FFF;
  173. }
  174. > span:nth-of-type(2) {
  175. margin: 0 0 0 8rpx;
  176. background-color: #FFF;
  177. }
  178. }
  179. .basic-info {
  180. display: flex;
  181. flex-direction: column;
  182. gap: 5rpx;
  183. //margin-top: 20rpx;
  184. padding: 20rpx 20rpx 20rpx 20rpx;
  185. .delivery-date {
  186. display: flex;
  187. align-items: center;
  188. background-color: #FFF;
  189. height: 80rpx;
  190. // margin: 10rpx 0 0 0;
  191. padding: 10rpx 0 0 20rpx;
  192. > view:nth-of-type(1) {
  193. width: 30%;
  194. // font-weight: 700;
  195. }
  196. .value {
  197. width: 70%;
  198. border-radius: 10rpx;
  199. overflow: hidden;
  200. .dateTimeCls {
  201. display: flex;
  202. align-items: center;
  203. justify-content: space-between;
  204. width: 100%;
  205. height: 80%;
  206. //border: 1px solid #b0b2b3;
  207. padding: 5rpx;
  208. border-radius: 20rpx;
  209. .date {
  210. font-size: 30rpx;
  211. display: flex;
  212. align-items: center;
  213. width: 80%;
  214. height: 100%;
  215. color: #000;
  216. }
  217. .img {
  218. display: flex;
  219. justify-content: center;
  220. align-items: center;
  221. //margin-left: 50rpx;
  222. width: 20%;
  223. //height: 100%;
  224. }
  225. }
  226. }
  227. }
  228. .tentativeQuantity {
  229. display: flex;
  230. align-items: center;
  231. background-color: #FFF;
  232. height: 80rpx;
  233. // margin: 10rpx 0 0 0;
  234. padding: 10rpx 0 0 20rpx;
  235. .key {
  236. width: 30%;
  237. }
  238. .value {
  239. width: 70%;
  240. border-radius: 10rpx;
  241. overflow: hidden;
  242. }
  243. }
  244. .Tip {
  245. display: flex;
  246. align-items: center;
  247. justify-content: center;
  248. .span {
  249. color: #999;
  250. font-size: 24rpx;
  251. }
  252. }
  253. .btns {
  254. width: 100%;
  255. display: flex;
  256. flex-direction: column;
  257. align-items: center;
  258. justify-content: center;
  259. gap: 20rpx;
  260. .ljxd {
  261. display: flex;
  262. align-items: center;
  263. justify-content: center;
  264. width: 500rpx;
  265. height: 70rpx;
  266. border-radius: 40rpx;
  267. color: #FFF;
  268. font-size: 28rpx;
  269. margin: 20rpx 10rpx 0 0;
  270. background: $uni-color;
  271. //margin-top: 20rpx;
  272. border-radius: 40rpx;
  273. }
  274. .lxwm {
  275. display: flex;
  276. align-items: center;
  277. justify-content: center;
  278. width: 500rpx;
  279. height: 70rpx;
  280. border-radius: 40rpx;
  281. color: #000000;
  282. font-size: 28rpx;
  283. margin: 20rpx 10rpx 0 0;
  284. background: #f1f1f1;
  285. //margin-top: 20rpx;
  286. border-radius: 40rpx;
  287. }
  288. .tip {
  289. display: flex;
  290. align-items: center;
  291. justify-content: center;
  292. font-size: 24rpx;
  293. color: #999;
  294. //width: 500rpx;
  295. }
  296. }
  297. .item {
  298. display: flex;
  299. align-items: center;
  300. background-color: #FFF;
  301. height: 80rpx;
  302. // margin: 10rpx 0 0 0;
  303. padding: 10rpx 0 0 20rpx;
  304. > view:nth-of-type(1) {
  305. width: 30%;
  306. // font-weight: 700;
  307. }
  308. > view:nth-of-type(2) {
  309. width: 70%;
  310. border-radius: 10rpx;
  311. overflow: hidden;
  312. input {
  313. background-color: #FFF;
  314. font-size: 28rpx;
  315. padding: 16rpx 8rpx 16rpx 15rpx;
  316. }
  317. }
  318. }
  319. .performanceBond {
  320. display: flex;
  321. align-items: center;
  322. background-color: #FFF;
  323. height: 80rpx;
  324. // margin: 10rpx 0 0 0;
  325. padding: 10rpx 0 0 20rpx;
  326. .key {
  327. width: 30%;
  328. // font-weight: 700;
  329. }
  330. .value {
  331. width: 70%;
  332. border-radius: 10rpx;
  333. overflow: hidden;
  334. input {
  335. background-color: #FFF;
  336. font-size: 28rpx;
  337. padding: 16rpx 8rpx 16rpx 15rpx;
  338. }
  339. }
  340. }
  341. .currentRegion {
  342. display: flex;
  343. align-items: center;
  344. background-color: #FFF;
  345. height: 80rpx;
  346. // margin: 10rpx 0 0 0;
  347. padding: 10rpx 0 0 20rpx;
  348. > view:nth-of-type(1) {
  349. width: 30%;
  350. // font-weight: 700;
  351. }
  352. > view:nth-of-type(2) {
  353. width: 70%;
  354. padding: 0 20rpx 0 0;
  355. display: flex;
  356. .input {
  357. background-color: #f5f5f5;
  358. // color: #a4a4a4;
  359. font-size: 28rpx;
  360. padding: 8rpx 8rpx 8rpx 15rpx;
  361. width: 350rpx;
  362. }
  363. .orientation {
  364. display: flex;
  365. padding: 10rpx 10rpx 10rpx 20rpx;
  366. font-size: 30rpx;
  367. color: #FBAB32;
  368. flex-direction: column;
  369. justify-content: center;
  370. align-items: center;
  371. }
  372. }
  373. }
  374. }
  375. }
  376. }
  377. </style>