Rap 原分销系统代码Web
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

1954 рядки
64KB

  1. <template>
  2. <div class="app-container">
  3. <div style="margin-bottom:10px">
  4. <el-button type="success" @click="addBtn">新增</el-button>
  5. <!--<el-button type="success" @click="importBtn">导入</el-button>
  6. <el-button type="success" @click="exportTempBtn">模版下载</el-button>-->
  7. </div>
  8. <!--搜索-->
  9. <el-form class="mt_15" ref="form" inline size="small">
  10. <el-form-item label="商品参数">
  11. <el-select v-model.trim="searchParm.paramsType" placeholder="请选择">
  12. <el-option
  13. v-for="item in searchParamsTypeList"
  14. :key="item.name"
  15. :label="item.name"
  16. :value="item.id">
  17. </el-option>
  18. </el-select>
  19. </el-form-item>
  20. <el-form-item label="国家">
  21. <el-input v-model.trim="searchParm.country" clearable></el-input>
  22. </el-form-item>
  23. <el-form-item label="账号">
  24. <el-input v-model.trim="searchParm.account" clearable></el-input>
  25. </el-form-item>
  26. <el-form-item label="状态">
  27. <el-select v-model.trim="searchParm.status" placeholder="请选择">
  28. <el-option
  29. v-for="item in statusList"
  30. :key="item.name"
  31. :label="item.name"
  32. :value="item.id">
  33. </el-option>
  34. </el-select>
  35. </el-form-item>
  36. <el-form-item>
  37. <el-button type="primary" @click="goSearch">搜索</el-button>
  38. <el-button type="warning" @click="resetForm">重置</el-button>
  39. </el-form-item>
  40. </el-form>
  41. <!--表格渲染-->
  42. <el-table ref="table" border size="small" :data="list" :header-cell-style="{textAlign:'center'}">
  43. <el-table-column label="商品属性" prop="paramsType" align="center">
  44. <template slot-scope="scope">
  45. {{ scope.row.paramsType | getparamsType}}
  46. </template>
  47. </el-table-column>
  48. <el-table-column label="国家" prop="country" align="center"/>
  49. <el-table-column label="账号" prop="account" align="center"/>
  50. <el-table-column label="公司名称" prop="companyName" align="center"/>
  51. <el-table-column label="加购商品Ids" prop="carGoodIds" align="center"/>
  52. <el-table-column label="状态" prop="status" align="center">
  53. <template slot-scope="scope">
  54. {{ scope.row.status | getStatus}}
  55. </template>
  56. </el-table-column>
  57. <el-table-column label="创建时间" prop="createdAt" align="center"/>
  58. <el-table-column label="修改时间" prop="updatedAt" align="center"/>
  59. <el-table-column label="操作" width="270" align="left" >
  60. <template slot-scope="scope">
  61. <el-button type="info" @click="getBtnById(scope.row.id)">查看</el-button>
  62. <span v-if="scope.row.status == 1 || scope.row.status == 4" slot="footer">
  63. <el-button type="warning" @click="editById(scope.row.id)" style="margin-left: 0px">修改</el-button>
  64. </span>
  65. <span v-if="scope.row.status == 3" slot="footer">
  66. <el-button type="danger" @click="orderSuccessBtn(scope.row.id)">下单成功</el-button>
  67. </span>
  68. <span v-if="scope.row.status == 5" slot="footer">
  69. <el-button type="danger" @click="toBeCatchBtn(scope.row.id)">支付成功</el-button>
  70. </span>
  71. <!-- 好评 -->
  72. <span v-if="scope.row.status == 8" slot="footer">
  73. <el-button type="info" @click="getBtnWellReceivedById(scope.row.id)">好评</el-button>
  74. </span>
  75. <span v-if="scope.row.status == 1" slot="footer">
  76. <el-button type="danger" @click="delById(scope.row.id)">删除</el-button>
  77. </span>
  78. <span v-if="scope.row.status == 8" slot="footer">
  79. <el-button type="danger" @click="getOrderBtnById(scope.row.id)">订单</el-button>
  80. </span>
  81. </template>
  82. </el-table-column>
  83. </el-table>
  84. <!--分页-->
  85. <div class="mt_15">
  86. <el-pagination
  87. @size-change="handleSizeChange"
  88. @current-change="handleCurrentChange"
  89. :current-page="searchParm.page"
  90. :page-sizes="[10, 20, 30, 40, 50]"
  91. :page-size="searchParm.pageSize"
  92. layout="total, sizes, prev, pager, next, jumper"
  93. :total="total">
  94. </el-pagination>
  95. </div>
  96. <!--新增弹窗-->
  97. <el-dialog :visible.sync="dialogAddVisible" :title="dialogAddTitle" center width="45%">
  98. <div class="dialog-content">
  99. <el-form ref="addParm" size="small" :model="addParm" :rules="rules" label-width="100px">
  100. <el-form-item label="买家账号" prop="account">
  101. <el-input v-model.trim="addParm.account" clearable style="width:270px"/>
  102. <el-button
  103. type="primary"
  104. icon="el-icon-search"
  105. @click="goSearchBuyer"
  106. style="width:130px"
  107. >请选择买家</el-button>
  108. </el-form-item>
  109. <!-- 先选择应用 后才能选择这个 根据应用调用不同的对应的 请求参数 分页查询 -->
  110. <el-form-item label="商品参数" prop="paramsType">
  111. <el-radio-group v-model.trim="addParm.paramsType" @change="changeCheckRange">
  112. <el-radio :label="1">关键词</el-radio>
  113. <el-radio :label="2">链接</el-radio>
  114. </el-radio-group>
  115. </el-form-item>
  116. <el-form-item v-if="labelVal === 1">
  117. <!--带按钮的新增 操作-->
  118. <div v-for="(item, index) in addParm.carGoodKeys" :key="index">
  119. <el-form-item>
  120. <el-button v-if="index+1 == addParm.carGoodKeys.length" @click="addItemKey" type="primary">增加</el-button>
  121. <el-button v-if="index !== 0" @click="deleteItemKey(item,index)" type="danger">删除</el-button>
  122. </el-form-item>
  123. </div>
  124. </el-form-item>
  125. <el-form-item v-if="labelVal === 1">
  126. <!--带按钮的新增 操作-->
  127. <div v-for="(item, index) in addParm.carGoodKeys" :key="index">
  128. <el-form-item label="店铺名称" prop="'carGoodKeys.' + index + 'shopName'">
  129. <el-input v-model.trim="item.shopName" clearable></el-input>
  130. </el-form-item>
  131. <el-form-item label="关键词" prop="'carGoodKeys.' + index + 'keyWord'">
  132. <el-input v-model.trim="item.keyWord" clearable></el-input>
  133. </el-form-item>
  134. <el-form-item label="标题" prop="'carGoodKeys.' + index + 'title'">
  135. <el-input v-model.trim="item.title" clearable></el-input>
  136. </el-form-item>
  137. <el-form-item label="最小价格区间" prop="'carGoodKeys.' + index + 'sectionMin'">
  138. <el-input v-model.trim="item.sectionMin" clearable></el-input>
  139. </el-form-item>
  140. <el-form-item label="最大价格区间" prop="'carGoodKeys.' + index + 'sectionMax'">
  141. <el-input v-model.trim="item.sectionMax" clearable></el-input>
  142. </el-form-item>
  143. <el-form-item label="Item" prop="'carGoodKeys.' + index + 'item'">
  144. <el-input v-model.trim="item.item" clearable></el-input>
  145. </el-form-item>
  146. <el-form-item label="数量" prop="'carGoodKeys.' + index + 'number'">
  147. <el-input v-model.trim="item.number" clearable></el-input>
  148. </el-form-item>
  149. <el-form-item label="规格" prop="'carGoodKeys.' + index + 'specification'">
  150. <el-input v-model.trim="item.specification" clearable></el-input>
  151. </el-form-item>
  152. <el-form-item label="颜色" prop="'carGoodKeys.' + index + 'color'">
  153. <el-input v-model.trim="item.color" clearable></el-input>
  154. </el-form-item>
  155. <el-form-item>
  156. <el-button v-if="index+1 == addParm.carGoodKeys.length" @click="addItemKey" type="primary">增加</el-button>
  157. <el-button v-if="index !== 0" @click="deleteItemKey(item,index)" type="danger">删除</el-button>
  158. </el-form-item>
  159. </div>
  160. </el-form-item>
  161. <el-form-item v-if="labelVal === 2">
  162. <!--带按钮的新增 操作-->
  163. <div v-for="(item, index) in addParm.carGoodLinks" :key="index">
  164. <el-form-item label="链接" prop="'carGoodLinks.' + index + 'link'">
  165. <el-input v-model.trim="item.link" clearable></el-input>
  166. </el-form-item>
  167. <el-form-item label="数量" prop="'carGoodLinks.' + index + 'number'">
  168. <el-input v-model.trim="item.number" clearable></el-input>
  169. </el-form-item>
  170. <el-form-item label="规格" prop="'carGoodLinks.' + index + 'specification'">
  171. <el-input v-model.trim="item.specification" clearable></el-input>
  172. </el-form-item>
  173. <el-form-item label="颜色" prop="'carGoodLinks.' + index + 'color'">
  174. <el-input v-model.trim="item.color" clearable></el-input>
  175. </el-form-item>
  176. <el-form-item>
  177. <el-button v-if="index+1 == addParm.carGoodLinks.length" @click="addItemLink" type="primary">增加</el-button>
  178. <el-button v-if="index !== 0" @click="deleteItemLink(item,index)" type="danger">删除</el-button>
  179. </el-form-item>
  180. </div>
  181. </el-form-item>
  182. </el-form>
  183. </div>
  184. <span slot="footer">
  185. <el-button type="info" @click="sureAddCancle('addParm')">取消</el-button>
  186. <el-button type="primary" @click="sureAdd('addParm')">确认</el-button>
  187. </span>
  188. </el-dialog>
  189. <!-- 买家弹窗 -->
  190. <el-dialog :visible.sync="dialogBuyerVisible" :title="dialogBuyerTitle" center width="75%">
  191. <div class="dialog-content">
  192. <!--搜索-->
  193. <el-form class="mt_15" ref="form" inline size="small">
  194. <el-form-item label="账号">
  195. <el-input v-model.trim="searchBuyerParm.account" clearable placeholder="账号"></el-input>
  196. </el-form-item>
  197. <el-form-item label="昵称">
  198. <el-input v-model.trim="searchBuyerParm.nickName" clearable></el-input>
  199. </el-form-item>
  200. <el-form-item label="密码">
  201. <el-input v-model.trim="searchBuyerParm.pwd" clearable></el-input>
  202. </el-form-item>
  203. <el-form-item label="公司">
  204. <el-select v-model.trim="searchBuyerParm.companyId" placeholder="请选择">
  205. <el-option
  206. v-for="item in companys"
  207. :key="item.name"
  208. :label="item.name"
  209. :value="item.id"
  210. ></el-option>
  211. </el-select>
  212. </el-form-item>
  213. <el-form-item>
  214. <el-button type="primary" @click="goSearchBuyer">搜索</el-button>
  215. <el-button type="warning" @click="resetBuyerForm">重置</el-button>
  216. </el-form-item>
  217. </el-form>
  218. <!--表格渲染-->
  219. <el-table
  220. ref="table"
  221. border
  222. size="small"
  223. :data="buyerList"
  224. :header-cell-style="{textAlign:'center'}"
  225. :cell-style="{textAlign:'center'}"
  226. >
  227. <el-table-column label="序号" type="index" width="50" />
  228. <el-table-column label="账号" prop="account" />
  229. <el-table-column label="所属国家" prop="contntryShort" />
  230. <el-table-column label="昵称" prop="nickName" />
  231. <el-table-column label="密码" prop="pwd" />
  232. <el-table-column label="公司" prop="companyName" />
  233. <el-table-column label="平台" prop="platformName" />
  234. <el-table-column label="VPNIP" prop="ipAddress" />
  235. <el-table-column label="信用卡卡号" prop="number" />
  236. <el-table-column label="州" prop="state" />
  237. <el-table-column label="国家" prop="country" />
  238. <el-table-column label="地址1" prop="addressline1" />
  239. <el-table-column label="占用状态" prop="status">
  240. <template slot-scope="scope">{{ scope.row.status | getBuyerStatus}}</template>
  241. </el-table-column>
  242. <el-table-column label="创建时间" prop="createdAt" />
  243. <el-table-column label="修改时间" prop="updatedAt" />
  244. <el-table-column label="操作" width="220">
  245. <template slot-scope="scope">
  246. <el-button type="info" @click="getBuyerBtnById(scope.row.id)">查看</el-button>
  247. <el-button type="success" @click="getBuyerById(scope.row)" v-if="buyerId !== scope.row.id">选中</el-button>
  248. <div v-if="buyerId === scope.row.id">已选中</div>
  249. </template>
  250. </el-table-column>
  251. </el-table>
  252. <!--分页-->
  253. <div class="mt_15">
  254. <el-pagination
  255. @size-change="handleSizeChange"
  256. @current-change="handleCurrentChange"
  257. :current-page="searchBuyerParm.page"
  258. :page-sizes="[10, 20, 30, 40, 50]"
  259. :page-size="searchBuyerParm.pageSize"
  260. layout="total, sizes, prev, pager, next, jumper"
  261. :total="total"
  262. ></el-pagination>
  263. </div>
  264. </div>
  265. </el-dialog>
  266. <!--导入 importBtn-->
  267. <el-dialog :visible.sync="dialogImportVisible" :title="dialogImportTitle" center width="22%">
  268. <div class="dialog-content">
  269. <el-upload
  270. class="upload-demo"
  271. drag
  272. ref="upload"
  273. :action="uploadFileUrl"
  274. :headers="uploadHeaders"
  275. :show-file-list = "false"
  276. :on-success="uploadSuccess"
  277. :before-upload="beforeAvatarUpload"
  278. multiple>
  279. <i class="el-icon-upload"></i>
  280. <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
  281. <div class="el-upload__tip" slot="tip">只能上传xlsl文件,且不超过10M</div>
  282. </el-upload>
  283. </div>
  284. </el-dialog>
  285. <!--修改弹窗-->
  286. <el-dialog :visible.sync="dialogEditVisible" :title="dialogEditTitle" center width="45%">
  287. <div class="dialog-content">
  288. <el-form ref="editParm" size="small" :model="editParm" :rules="rules" label-width="100px">
  289. <el-form-item label="买家账号" prop="account">
  290. <el-input v-model.trim="editParm.account" :disabled="true" style="width:200px" />
  291. <el-button
  292. type="primary"
  293. icon="el-icon-search"
  294. @click="goSearchBuyer"
  295. style="width:130px"
  296. >请选择设</el-button>
  297. </el-form-item>
  298. <!-- 先选择应用 后才能选择这个 根据应用调用不同的对应的 请求参数 分页查询 -->
  299. <el-form-item label="商品参数" prop="paramsType">
  300. <el-radio-group v-model.trim="editParm.paramsType" @change="changeCheckRange">
  301. <el-radio :label="1">关键词</el-radio>
  302. <el-radio :label="2">链接</el-radio>
  303. </el-radio-group>
  304. </el-form-item>
  305. <el-form-item v-if="labelVal === 1">
  306. <!--带按钮的新增 操作-->
  307. <div v-for="(item, index) in editParm.carGoodKeys" :key="index">
  308. <el-input v-model.trim="item.id" type="hidden" clearable></el-input>
  309. <el-form-item label="店铺名称" prop="shopName">
  310. <el-input v-model.trim="item.shopName" clearable></el-input>
  311. </el-form-item>
  312. <el-form-item label="关键词" prop="keyWord">
  313. <el-input v-model.trim="item.keyWord" clearable></el-input>
  314. </el-form-item>
  315. <el-form-item label="标题" prop="title">
  316. <el-input v-model.trim="item.title" clearable></el-input>
  317. </el-form-item>
  318. <el-form-item label="最小价格区间" prop="sectionMin">
  319. <el-input v-model.trim="item.sectionMin" clearable></el-input>
  320. </el-form-item>
  321. <el-form-item label="最大价格区间" prop="sectionMax">
  322. <el-input v-model.trim="item.sectionMax" clearable></el-input>
  323. </el-form-item>
  324. <el-form-item label="Item" prop="item">
  325. <el-input v-model.trim="item.item" clearable></el-input>
  326. </el-form-item>
  327. <el-form-item label="数量" prop="number">
  328. <el-input v-model.trim="item.number" clearable></el-input>
  329. </el-form-item>
  330. <el-form-item label="规格" prop="specification">
  331. <el-input v-model.trim="item.specification" clearable></el-input>
  332. </el-form-item>
  333. <el-form-item label="颜色" prop="color">
  334. <el-input v-model.trim="item.color" clearable></el-input>
  335. </el-form-item>
  336. <el-form-item>
  337. <el-button v-if="index+1 == editParm.carGoodKeys.length" @click="addEditItemKey" type="primary">增加</el-button>
  338. <el-button v-if="index !== 0" @click="deleteEditItemKey(item,index)" type="danger">删除</el-button>
  339. </el-form-item>
  340. </div>
  341. </el-form-item>
  342. <el-form-item v-if="labelVal === 2">
  343. <!--带按钮的新增 操作-->
  344. <div v-for="(item, index) in editParm.carGoodLinks" :key="index">
  345. <el-input v-model.trim="item.id" type="hidden" clearable></el-input>
  346. <el-form-item label="链接" prop="link">
  347. <el-input v-model.trim="item.link" clearable></el-input>
  348. </el-form-item>
  349. <el-form-item label="数量" prop="number">
  350. <el-input v-model.trim="item.number" clearable></el-input>
  351. </el-form-item>
  352. <el-form-item label="规格" prop="specification">
  353. <el-input v-model.trim="item.specification" clearable></el-input>
  354. </el-form-item>
  355. <el-form-item label="颜色" prop="color">
  356. <el-input v-model.trim="item.color" clearable></el-input>
  357. </el-form-item>
  358. <el-form-item>
  359. <el-button v-if="index+1 == editParm.carGoodLinks.length" @click="addEditItemLink" type="primary">增加</el-button>
  360. <el-button v-if="index !== 0" @click="deleteEditItemLink(item,index)" type="danger">删除</el-button>
  361. </el-form-item>
  362. </div>
  363. </el-form-item>
  364. </el-form>
  365. </div>
  366. <span slot="footer">
  367. <el-button type="info" @click="sureEditCancle('editParm')">取消</el-button>
  368. <el-button type="primary" @click="sureEdit('editParm')">确认</el-button>
  369. </span>
  370. </el-dialog>
  371. <!--详情弹窗-->
  372. <el-dialog :visible.sync="dialogDetailVisible" :title="dialogDetailTitle" center width="45%">
  373. <div class="dialog-content">
  374. <el-form ref="form" size="small" label-width="100px">
  375. <el-form-item label="买家账号" prop="account">
  376. <el-input v-model.trim="detailParm.account" :disabled="true" clearable></el-input>
  377. </el-form-item>
  378. <!-- 先选择应用 后才能选择这个 根据应用调用不同的对应的 请求参数 分页查询 -->
  379. <el-form-item label="商品参数" prop="paramsType">
  380. <el-radio-group v-model.trim="detailParm.paramsType" @change="changeCheckRange">
  381. <el-radio :label="1" :disabled="true">关键词</el-radio>
  382. <el-radio :label="2" :disabled="true">链接</el-radio>
  383. </el-radio-group>
  384. </el-form-item>
  385. <el-form-item v-if="labelVal === 1">
  386. <!--带按钮的新增 操作-->
  387. <div v-for="(item, index) in detailParm.carGoodKeys" :key="index">
  388. <el-input v-model.trim="item.id" type="hidden" clearable></el-input>
  389. <el-form-item label="店铺名称" prop="shopName">
  390. <el-input v-model.trim="item.shopName" clearable></el-input>
  391. </el-form-item>
  392. <el-form-item label="关键词" prop="keyWord">
  393. <el-input v-model.trim="item.keyWord" clearable></el-input>
  394. </el-form-item>
  395. <el-form-item label="标题" prop="title">
  396. <el-input v-model.trim="item.title" clearable></el-input>
  397. </el-form-item>
  398. <el-form-item label="最小价格区间" prop="sectionMin">
  399. <el-input v-model.trim="item.sectionMin" clearable></el-input>
  400. </el-form-item>
  401. <el-form-item label="最大价格区间" prop="sectionMax">
  402. <el-input v-model.trim="item.sectionMax" clearable></el-input>
  403. </el-form-item>
  404. <el-form-item label="Item" prop="item">
  405. <el-input v-model.trim="item.item" clearable></el-input>
  406. </el-form-item>
  407. <el-form-item label="数量" prop="number">
  408. <el-input v-model.trim="item.number" clearable></el-input>
  409. </el-form-item>
  410. <el-form-item label="规格" prop="specification">
  411. <el-input v-model.trim="item.specification" clearable></el-input>
  412. </el-form-item>
  413. <el-form-item label="颜色" prop="color">
  414. <el-input v-model.trim="item.color" clearable></el-input>
  415. </el-form-item>
  416. </div>
  417. </el-form-item>
  418. <el-form-item v-if="labelVal === 2">
  419. <!--带按钮的新增 操作-->
  420. <div v-for="(item, index) in detailParm.carGoodLinks" :key="index">
  421. <el-input v-model.trim="item.id" type="hidden" clearable></el-input>
  422. <el-form-item label="链接" prop="link">
  423. <el-input v-model.trim="item.link" clearable></el-input>
  424. </el-form-item>
  425. <el-form-item label="数量" prop="number">
  426. <el-input v-model.trim="item.number" clearable></el-input>
  427. </el-form-item>
  428. <el-form-item label="规格" prop="specification">
  429. <el-input v-model.trim="item.specification" clearable></el-input>
  430. </el-form-item>
  431. <el-form-item label="颜色" prop="color">
  432. <el-input v-model.trim="item.color" clearable></el-input>
  433. </el-form-item>
  434. </div>
  435. </el-form-item>
  436. <el-form-item label="执行结果" prod="response">
  437. <el-input v-model.trim="detailParm.response" :disabled="true" clearable></el-input>
  438. </el-form-item>
  439. <el-form-item label="状态" prod="status">
  440. <el-select v-model.trim="detailParm.status" :disabled="true" placeholder="请选择">
  441. <el-option
  442. v-for="item in detailStatusList"
  443. :key="item.name"
  444. :label="item.name"
  445. :value="item.id">
  446. </el-option>
  447. </el-select>
  448. </el-form-item>
  449. </el-form>
  450. </div>
  451. </el-dialog>
  452. <!--好评-回显-弹窗-->
  453. <el-dialog :visible.sync="dialogWellReceivedVisible" :title="dialogWellReceivedTitle" center width="45%">
  454. <div class="dialog-content">
  455. <el-form ref="form" size="small" label-width="100px">
  456. <el-form-item label="买家账号" prop="account">
  457. <el-input v-model.trim="detailParm.account" :disabled="true" clearable></el-input>
  458. </el-form-item>
  459. <!-- 先选择应用 后才能选择这个 根据应用调用不同的对应的 请求参数 分页查询 -->
  460. <el-form-item label="商品参数" prop="paramsType">
  461. <el-radio-group v-model.trim="detailParm.paramsType" @change="changeCheckRange">
  462. <el-radio :label="1" :disabled="true">关键词</el-radio>
  463. <el-radio :label="2" :disabled="true">链接</el-radio>
  464. </el-radio-group>
  465. </el-form-item>
  466. <el-form-item v-if="labelVal === 1">
  467. <!--带按钮的新增 操作-->
  468. <div v-for="(item, index) in detailParm.carGoodKeys" :key="index">
  469. <el-input v-model.trim="item.id" type="hidden" clearable></el-input>
  470. <el-form-item label="店铺名称" prop="shopName">
  471. <el-input v-model.trim="item.shopName" :disabled="true"></el-input>
  472. </el-form-item>
  473. <el-form-item label="关键词" prop="keyWord">
  474. <el-input v-model.trim="item.keyWord" :disabled="true"></el-input>
  475. </el-form-item>
  476. <el-form-item label="标题" prop="title">
  477. <el-input v-model.trim="item.title" :disabled="true"></el-input>
  478. </el-form-item>
  479. <el-form-item label="最小价格区间" prop="sectionMin">
  480. <el-input v-model.trim="item.sectionMin" :disabled="true"></el-input>
  481. </el-form-item>
  482. <el-form-item label="最大价格区间" prop="sectionMax">
  483. <el-input v-model.trim="item.sectionMax" :disabled="true"></el-input>
  484. </el-form-item>
  485. <el-form-item label="Item" prop="item">
  486. <el-input v-model.trim="item.item" :disabled="true"></el-input>
  487. </el-form-item>
  488. <el-form-item label="数量" prop="number">
  489. <el-input v-model.trim="item.number" :disabled="true"></el-input>
  490. </el-form-item>
  491. <el-form-item label="规格" prop="specification">
  492. <el-input v-model.trim="item.specification" :disabled="true"></el-input>
  493. </el-form-item>
  494. <el-form-item label="颜色" prop="color">
  495. <el-input v-model.trim="item.color" :disabled="true"></el-input>
  496. </el-form-item>
  497. <el-form-item label="评论" prop="comment">
  498. <el-input v-model.trim="item.comment" clearable></el-input>
  499. </el-form-item>
  500. <el-input v-model.trim="item.paths" type="hidden" clearable></el-input>
  501. <el-upload
  502. class="upload-demo"
  503. :data = "updateFileType"
  504. :action="uploadFileImgUrl"
  505. :on-preview="handlePreview"
  506. :headers="uploadHeaders"
  507. :on-remove="handleRemove.bind(null, {'index':index, 'paramsType': 1})"
  508. :on-success="uploadImgSuccess.bind(null, {'index':index, 'paramsType': 1})"
  509. :before-upload="beforeImgUpload"
  510. :before-remove="beforeRemove"
  511. :file-list="fileList[index]"
  512. list-type="picture">
  513. <el-button size="small" type="primary">点击上传</el-button>
  514. <div slot="tip" class="el-upload__tip">只能上传img/jpg/png/jpeg文件,且不超过5M</div>
  515. </el-upload>
  516. </div>
  517. </el-form-item>
  518. <el-form-item v-if="labelVal === 2">
  519. <!--带按钮的新增 操作-->
  520. <div v-for="(item, index) in detailParm.carGoodLinks" :key="index">
  521. <el-input v-model.trim="item.id" type="hidden" clearable></el-input>
  522. <el-form-item label="链接" prop="link">
  523. <el-input v-model.trim="item.link" :disabled="true"></el-input>
  524. </el-form-item>
  525. <el-form-item label="数量" prop="number">
  526. <el-input v-model.trim="item.number" :disabled="true"></el-input>
  527. </el-form-item>
  528. <el-form-item label="规格" prop="specification">
  529. <el-input v-model.trim="item.specification" :disabled="true"></el-input>
  530. </el-form-item>
  531. <el-form-item label="颜色" prop="color">
  532. <el-input v-model.trim="item.color" :disabled="true"></el-input>
  533. </el-form-item>
  534. <el-form-item label="评论" prop="comment">
  535. <el-input v-model.trim="item.comment" clearable></el-input>
  536. </el-form-item>
  537. <el-input v-model.trim="item.paths" type="hidden" clearable></el-input>
  538. <el-upload
  539. class="upload-demo"
  540. :data = "updateFileType"
  541. :action="uploadFileImgUrl"
  542. :on-preview="handlePreview"
  543. :headers="uploadHeaders"
  544. :on-remove="handleRemove.bind(null, {'index':index, 'paramsType':2})"
  545. :on-success="uploadImgSuccess.bind(null, {'index':index, 'paramsType':2})"
  546. :before-upload="beforeImgUpload"
  547. :before-remove="beforeRemove"
  548. :file-list="fileList[index]"
  549. list-type="picture">
  550. <el-button size="small" type="primary">点击上传</el-button>
  551. <div slot="tip" class="el-upload__tip">只能上传img/jpg/png/jpeg文件,且不超过5M</div>
  552. </el-upload>
  553. </div>
  554. </el-form-item>
  555. <el-form-item label="执行结果" prod="response">
  556. <el-input v-model.trim="detailParm.response" :disabled="true" clearable></el-input>
  557. </el-form-item>
  558. <el-form-item label="状态" prod="status">
  559. <el-select v-model.trim="detailParm.status" :disabled="true" placeholder="请选择">
  560. <el-option
  561. v-for="item in detailStatusList"
  562. :key="item.name"
  563. :label="item.name"
  564. :value="item.id">
  565. </el-option>
  566. </el-select>
  567. </el-form-item>
  568. </el-form>
  569. </div>
  570. <span slot="footer">
  571. <el-button type="info" @click="sureWellReceivedCancle('detailParm')">取消</el-button>
  572. <el-button type="primary" @click="sureWellReceived('detailParm')">确认</el-button>
  573. </span>
  574. </el-dialog>
  575. <!--Order详情弹窗-->
  576. <el-dialog :visible.sync="dialogOrderDetailVisible" :title="dialogOrderDetailTitle" center width="45%">
  577. <div class="dialog-content">
  578. <el-form ref="form" size="small" label-width="100px">
  579. <el-form-item label="创建时间" prop="createdAt">
  580. <el-input v-model.trim="orderDetailParm.createdAt" :disabled="true" clearable></el-input>
  581. </el-form-item>
  582. <el-form-item label="修改时间" prop="updatedAt">
  583. <el-input v-model.trim="orderDetailParm.updatedAt" :disabled="true" clearable></el-input>
  584. </el-form-item>
  585. <el-form-item label="总金额" prop="amount">
  586. <el-input v-model.trim="orderDetailParm.amount" :disabled="true" clearable></el-input>
  587. </el-form-item>
  588. <el-form-item label="状态描述" prop="paymentResults">
  589. <el-input v-model.trim="orderDetailParm.paymentResults" :disabled="true" clearable></el-input>
  590. </el-form-item>
  591. <el-form-item label="店铺名称" prop="shop">
  592. <el-input v-model.trim="orderDetailParm.shop" :disabled="true" clearable></el-input>
  593. </el-form-item>
  594. <!--<el-form-item label="购买数量" prop="pricesNumber">
  595. <el-input v-model.trim="orderDetailParm.pricesNumber" :disabled="true" clearable></el-input>
  596. </el-form-item>
  597. <el-form-item label="订单id" prop="orderId">
  598. <el-input v-model.trim="orderDetailParm.orderId" :disabled="true" clearable></el-input>
  599. </el-form-item>
  600. <el-form-item label="商品名称" prop="shopName">
  601. <el-input v-model.trim="orderDetailParm.shopName" :disabled="true" clearable></el-input>
  602. </el-form-item>-->
  603. <el-form-item label="时间" prop="orderDate">
  604. <el-input v-model.trim="orderDetailParm.orderDate" :disabled="true" clearable></el-input>
  605. </el-form-item>
  606. </el-form>
  607. </div>
  608. </el-dialog>
  609. <!--详情弹窗-->
  610. <el-dialog :visible.sync="dialogBuyerDetailVisible" :title="dialogBuyerDetailTitle" center width="45%">
  611. <div class="dialog-content">
  612. <el-form ref="form" size="small" label-width="120px">
  613. <el-form-item label="账号" prop="account">
  614. <el-input v-model.trim="detailBuyerParm.account" :disabled="true"></el-input>
  615. </el-form-item>
  616. <el-form-item label="昵称" prop="nickName">
  617. <el-input v-model.trim="detailBuyerParm.nickName" :disabled="true"></el-input>
  618. </el-form-item>
  619. <el-form-item label="密码" prop="pwd">
  620. <el-input v-model.trim="detailBuyerParm.pwd" :disabled="true"></el-input>
  621. </el-form-item>
  622. <el-form-item label="公司" prop="companyId">
  623. <el-select v-model.trim="detailBuyerParm.companyId" disabled placeholder="请选择">
  624. <el-option
  625. v-for="item in companys"
  626. :key="item.name"
  627. :label="item.name"
  628. :value="item.id"
  629. ></el-option>
  630. </el-select>
  631. </el-form-item>
  632. <el-form-item label="平台" prop="platformId">
  633. <el-select v-model.trim="detailBuyerParm.platformId" disabled placeholder="请选择">
  634. <el-option
  635. v-for="item in platformList"
  636. :key="item.name"
  637. :label="item.name"
  638. :value="item.id"
  639. ></el-option>
  640. </el-select>
  641. </el-form-item>
  642. <!--国家-->
  643. <el-form-item label="国家" prop="contntryShort">
  644. <el-input v-model.trim="detailBuyerParm.contntryShort" disabled clearable></el-input>
  645. </el-form-item>
  646. <!--VPN vpnId -->
  647. <el-form-item label="VPNIP" prop="vpnIp">
  648. <el-input v-model.trim="detailBuyerParm.vpnIp" disabled clearable></el-input>
  649. </el-form-item>
  650. <!--信用卡ID cardId -->
  651. <el-form-item label="信用卡卡号" prop="cardNumber">
  652. <el-input v-model.trim="detailBuyerParm.cardNumber" disabled clearable></el-input>
  653. </el-form-item>
  654. <!--用户等级 level -->
  655. <el-form-item label="用户等级" prop="level">
  656. <el-select v-model.trim="detailBuyerParm.level" disabled placeholder="请选择">
  657. <el-option
  658. v-for="item in levelList"
  659. :key="item.name"
  660. :label="item.name"
  661. :value="item.id"
  662. ></el-option>
  663. </el-select>
  664. </el-form-item>
  665. <!--占用状态 occupyStatus -->
  666. <el-form-item label="占用状态" prop="occupyStatus">
  667. <el-select v-model.trim="detailBuyerParm.occupyStatus" disabled placeholder="请选择">
  668. <el-option
  669. v-for="item in occupyStatusList"
  670. :key="item.name"
  671. :label="item.name"
  672. :value="item.id"
  673. ></el-option>
  674. </el-select>
  675. </el-form-item>
  676. <!--状态 status -->
  677. <el-form-item label="状态" prop="status">
  678. <el-select v-model.trim="detailBuyerParm.status" disabled placeholder="请选择">
  679. <el-option
  680. v-for="item in buyerStatusList"
  681. :key="item.name"
  682. :label="item.name"
  683. :value="item.id"
  684. ></el-option>
  685. </el-select>
  686. </el-form-item>
  687. <!--占用账户-->
  688. <el-form-item label="占用账户" prop="occupyAccount">
  689. <el-input v-model.trim="detailBuyerParm.occupyAccount" :disabled="true" clearable></el-input>
  690. </el-form-item>
  691. <!--账户余额-->
  692. <el-form-item label="账户余额" prop="balance">
  693. <el-input v-model.trim="detailBuyerParm.balance" :disabled="true" clearable></el-input>
  694. </el-form-item>
  695. <!--购买总金额-->
  696. <el-form-item label="账户购买总金额" prop="buyTotalMoney">
  697. <el-input v-model.trim="detailBuyerParm.buyTotalMoney" :disabled="true" clearable></el-input>
  698. </el-form-item>
  699. <!--地址1-->
  700. <el-form-item label="地址1" prop="addressline1">
  701. <el-input v-model.trim="detailBuyerParm.addressline1" :disabled="true" clearable></el-input>
  702. </el-form-item>
  703. <!--国家-->
  704. <el-form-item label="国家" prop="country">
  705. <el-input v-model.trim="detailBuyerParm.country" :disabled="true" clearable></el-input>
  706. </el-form-item>
  707. <!--州-->
  708. <el-form-item label="州" prop="state">
  709. <el-input v-model.trim="detailBuyerParm.state" :disabled="true" clearable></el-input>
  710. </el-form-item>
  711. <!--电话-->
  712. <el-form-item label="电话" prop="tel">
  713. <el-input v-model.trim="detailBuyerParm.tel" :disabled="true" clearable></el-input>
  714. </el-form-item>
  715. <!--lastname-->
  716. <el-form-item label="lastname" prop="lastname">
  717. <el-input v-model.trim="detailBuyerParm.lastname" :disabled="true" clearable></el-input>
  718. </el-form-item>
  719. <!--税号-->
  720. <el-form-item label="税号" prop="vatNumber">
  721. <el-input v-model.trim="detailBuyerParm.vatNumber" :disabled="true" clearable></el-input>
  722. </el-form-item>
  723. <!--城市-->
  724. <el-form-item label="城市" prop="city">
  725. <el-input v-model.trim="detailBuyerParm.city" :disabled="true" clearable></el-input>
  726. </el-form-item>
  727. <!--地址2-->
  728. <el-form-item label="地址2" prop="addressline2">
  729. <el-input v-model.trim="detailBuyerParm.addressline2" :disabled="true" clearable></el-input>
  730. </el-form-item>
  731. <!--firstname-->
  732. <el-form-item label="firstname" prop="firstname">
  733. <el-input v-model.trim="detailBuyerParm.firstname" :disabled="true" clearable></el-input>
  734. </el-form-item>
  735. <!--邮政编码-->
  736. <el-form-item label="邮政编码" prop="postalcode">
  737. <el-input v-model.trim="detailBuyerParm.postalcode" :disabled="true" clearable></el-input>
  738. </el-form-item>
  739. </el-form>
  740. </div>
  741. </el-dialog>
  742. </div>
  743. </template>
  744. <script>
  745. // import { editById, delById, getById } from '@/api/group/clickfarming'
  746. import { getById } from '@/api/group/dhAddCarCatch'
  747. import { getDetailById } from '@/api/group/clickOrder'
  748. import { getBuyerList, getBuyerById } from "@/api/group/dhPay";
  749. import { getAll } from "@/api/group/company";
  750. import { doMainName } from "@/api/group/fileUpload";
  751. import { add, getList, getEditDetailById, sureEditById, delById, orderSuccess, toBeCatch, wellReceive } from '@/api/group/dhAddCar'
  752. export default {
  753. filters: {
  754. getStatus: function (value) {
  755. // 状态 1.待执行 2.执行中 3.加购成功 4.加购失败 5.下单成功 6.支付成功 7.抓单成功 8.抓单失败
  756. if(value == 1) {
  757. return '待执行';
  758. } else if (value == 2) {
  759. return '执行中';
  760. } else if (value == 3) {
  761. return '加购成功';
  762. } else if(value == 4) {
  763. return '加购失败';
  764. } else if(value == 5) {
  765. return '下单成功';
  766. } else if(value == 6) {
  767. return '待抓单';
  768. } else if(value == 7) {
  769. return '抓单中';
  770. } else if(value == 8) {
  771. return '抓单成功';
  772. } else {
  773. return '抓单失败';
  774. }
  775. },
  776. getBuyerStatus:function (value) {
  777. if(value == 1) {
  778. return '已占用';
  779. } else{
  780. return '未占用';
  781. }
  782. },
  783. getparamsType: function (value) {
  784. if(value == 1) {
  785. return '关键词';
  786. } else if (value == 2) {
  787. return '链接';
  788. }
  789. }
  790. },
  791. // 数据
  792. data() {
  793. return {
  794. searchParm: {
  795. page: 1,
  796. pageSize: 10,
  797. sort:'created_at',
  798. order:'desc',
  799. status:null,
  800. shopName:'',
  801. payOrderId:null,
  802. paramsType:null,
  803. country:null,
  804. account:null
  805. },
  806. total:0,
  807. labelVal:"1",
  808. list: [],
  809. buyerList: [],
  810. companys:[],
  811. buyerId: null,
  812. fileList:[],
  813. paths:[],
  814. doMainNameUrl: null,
  815. uploadHeaders:{ Authorization: this.$store.getters.token },
  816. dialogAddVisible: false,
  817. dialogAddTitle: '新增',
  818. dialogDetailVisible: false,
  819. dialogDetailTitle: '详情',
  820. dialogWellReceivedVisible: false,
  821. dialogWellReceivedTitle: '好评',
  822. dialogOrderDetailVisible: false,
  823. dialogOrderDetailTitle: '订单详情',
  824. dialogEditVisible: false,
  825. dialogEditTitle: '修改',
  826. dialogSupplementVisible: false,
  827. dialogSupplementTitle: '补录',
  828. dialogImportVisible: false,
  829. dialogImportTitle:'导入',
  830. dialogBuyerVisible: false,
  831. dialogBuyerTitle: "买家列表",
  832. dialogBuyerVisible: false,
  833. dialogBuyerTitle: "买家列表",
  834. dialogBuyerDetailVisible: false,
  835. dialogBuyerDetailTitle: "买家详情",
  836. updateFileType: {type: 13},
  837. uploadFileUrl: process.env.VUE_APP_BASE_API + '/api/clickFarming/import',
  838. uploadFileImgUrl: process.env.VUE_APP_BASE_API + '/api/file/uploadFile',
  839. updateBoolean: false,
  840. tempUrl: process.env.VUE_APP_BASE_API + '/api/clickFarming/exportTemp',
  841. fileImages:{
  842. name: null,
  843. url: null
  844. },
  845. // 状态 1.待执行 2.执行中 3.加购成功 4.加购失败 5.下单成功 6.支付成功 7.抓单成功 8.抓单失败
  846. detailStatusList:[
  847. {
  848. id: 1,
  849. name: '待执行'
  850. },
  851. {
  852. id: 2,
  853. name: '执行中'
  854. },
  855. {
  856. id: 3,
  857. name: '加购成功'
  858. },
  859. {
  860. id: 4,
  861. name: '加购失败'
  862. },{
  863. id:5,
  864. name:"下单成功"
  865. },{
  866. id:6,
  867. name:"待抓单"
  868. },{
  869. id:7,
  870. name:"抓单中"
  871. },{
  872. id:8,
  873. name:"抓单成功"
  874. },{
  875. id:9,
  876. name:"抓单失败"
  877. }],
  878. statusList:[
  879. {
  880. id: null,
  881. name: '全部'
  882. },
  883. {
  884. id: 1,
  885. name: '待执行'
  886. },
  887. {
  888. id: 2,
  889. name: '执行中',
  890. },
  891. {
  892. id: 3,
  893. name: '加购成功'
  894. },
  895. {
  896. id: 4,
  897. name: '加购失败'
  898. },{
  899. id:5,
  900. name:"下单成功"
  901. },{
  902. id:6,
  903. name:"待抓单"
  904. },{
  905. id:7,
  906. name:"抓单中"
  907. },{
  908. id:8,
  909. name:"抓单成功"
  910. },{
  911. id:9,
  912. name:"抓单失败"
  913. }],
  914. searchParamsTypeList:[
  915. {
  916. id: null,
  917. name: '全部'
  918. },
  919. {
  920. id: 1,
  921. name: '关键词'
  922. },
  923. {
  924. id: 2,
  925. name: '链接',
  926. },
  927. ],
  928. occupyStatusList: [
  929. {
  930. id: 1,
  931. name: "已占用"
  932. },
  933. {
  934. id: 2,
  935. name: "未占用"
  936. }
  937. ],
  938. buyerStatusList: [
  939. {
  940. id: 1,
  941. name: "待注册"
  942. },
  943. {
  944. id: 2,
  945. name: "待验证"
  946. },
  947. {
  948. id: 3,
  949. name: "待完善"
  950. },
  951. {
  952. id: 4,
  953. name: "正常"
  954. },
  955. {
  956. id: 5,
  957. name: "异常"
  958. },
  959. {
  960. id: 6,
  961. name: "可用但已用"
  962. },
  963. {
  964. id: 7,
  965. name: "删除"
  966. }
  967. ],
  968. levelList: [
  969. {
  970. id: 1,
  971. name: "普通"
  972. },
  973. {
  974. id: 2,
  975. name: "精品"
  976. },
  977. {
  978. id: 3,
  979. name: "压力"
  980. },
  981. {
  982. id: 4,
  983. name: "内部账号"
  984. }
  985. ],
  986. platformList: [
  987. {
  988. id: 1,
  989. name: "敦煌"
  990. },
  991. {
  992. id: 2,
  993. name: "速卖通"
  994. },
  995. {
  996. id: 3,
  997. name: "马帮"
  998. }
  999. ],
  1000. addParm: {
  1001. buyerId:null,
  1002. paramsType: null,
  1003. carGoodKeys:[
  1004. {
  1005. shopName: null,
  1006. keyWord:null,
  1007. title:null,
  1008. specification:null,
  1009. color:null,
  1010. number:null,
  1011. sectionMin:null,
  1012. sectionMax:null,
  1013. item:null,
  1014. paramsType:1
  1015. }
  1016. ],
  1017. carGoodLinks:[
  1018. {
  1019. link:null,
  1020. specification:null,
  1021. color:null,
  1022. number:null,
  1023. paramsType:2
  1024. }
  1025. ]
  1026. },
  1027. searchBuyerParm: {
  1028. page: 1,
  1029. pageSize: 10,
  1030. account: null,
  1031. sort: "created_at",
  1032. order: "desc",
  1033. nickName: null,
  1034. pwd: null,
  1035. companyId: null,
  1036. platformId: 1
  1037. },
  1038. editParm: {
  1039. id: null,
  1040. buyerId:null,
  1041. account:null,
  1042. paramsType: null,
  1043. carGoodKeys:[
  1044. {
  1045. id:null,
  1046. shopName: null,
  1047. keyWord:null,
  1048. title:null,
  1049. specification:null,
  1050. color:null,
  1051. number:null,
  1052. sectionMin:null,
  1053. sectionMax:null,
  1054. item:null,
  1055. paramsType:1
  1056. }
  1057. ],
  1058. carGoodLinks:[
  1059. {
  1060. id:null,
  1061. link:null,
  1062. specification:null,
  1063. color:null,
  1064. number:null,
  1065. paramsType:2
  1066. }
  1067. ]
  1068. },
  1069. dialogWellReceived:{
  1070. id:null,
  1071. dialogWellReceivedGoods:[
  1072. {
  1073. id:null,
  1074. comment:null,
  1075. paths:null
  1076. }
  1077. ]
  1078. },
  1079. detailParm: {
  1080. id: null,
  1081. buyerId:null,
  1082. account:null,
  1083. paramsType: null,
  1084. status:null,
  1085. carGoodKeys:[
  1086. {
  1087. id:null,
  1088. shopName: null,
  1089. keyWord:null,
  1090. title:null,
  1091. specification:null,
  1092. color:null,
  1093. number:null,
  1094. sectionMin:null,
  1095. sectionMax:null,
  1096. item:null,
  1097. paramsType:1,
  1098. comment:null,
  1099. paths:[]
  1100. }
  1101. ],
  1102. carGoodLinks:[
  1103. {
  1104. id:null,
  1105. link:null,
  1106. specification:null,
  1107. color:null,
  1108. number:null,
  1109. paramsType:2,
  1110. comment:null,
  1111. paths:[]
  1112. }
  1113. ]
  1114. },
  1115. orderDetailParm: {
  1116. id: null,
  1117. createdAt:null,
  1118. updatedAt:null,
  1119. amount:null,
  1120. paymentResults:null,
  1121. shop:null,
  1122. // pricesNumber:null,
  1123. // orderId:null,
  1124. // shopName:null,
  1125. orderDate:null
  1126. },
  1127. detailBuyerParm: {
  1128. id: null,
  1129. nickName:null,
  1130. pwd:null,
  1131. account: null,
  1132. companyId:null,
  1133. platformId:null,
  1134. contntryShort:null,
  1135. vpnId:null,
  1136. vpnIp:null,
  1137. cardId:null,
  1138. cardNumber:null,
  1139. level:null,
  1140. occupyStatus:null,
  1141. addressline1:null,
  1142. country:null,
  1143. state:null,
  1144. tel:null,
  1145. lastname:null,
  1146. vatNumber:null,
  1147. city:null,
  1148. addressline2:null,
  1149. firstname:null,
  1150. postalcode:null,
  1151. status:null
  1152. },
  1153. rules: {
  1154. type: [
  1155. {required: true, message:"请选择操作类型", trigger: 'blur'}
  1156. ],
  1157. paramsType: [
  1158. {required: true, message:"请选择商品参数", trigger: 'blur'}
  1159. ],
  1160. // shopName: [
  1161. // { required: true, message: '请输入店铺名称', trigger: 'blur' }
  1162. // ],
  1163. // keyWord: [
  1164. // { required: true, message: '请输入关键词', trigger: 'blur' }
  1165. // ],
  1166. // title: [
  1167. // { required: true, message: '请输入标题', trigger: 'blur' }
  1168. // ],
  1169. // link: [
  1170. // { required: true, message: '请输入链接', trigger: 'blur' }
  1171. // ],
  1172. // number: [
  1173. // { required: true, message: '请输入数量', trigger: 'blur' }
  1174. // ],
  1175. // item: [
  1176. // { required: true, message: '请输入Item', trigger: 'blur' }
  1177. // ],
  1178. amessage: [
  1179. { required: true, message: '请输入留言', trigger: 'blur' }
  1180. ]
  1181. }
  1182. }
  1183. },
  1184. // 调用
  1185. created() {
  1186. this.getFileDoMainName();
  1187. this.fileList = [];
  1188. this.goSearch();
  1189. },
  1190. //方法
  1191. methods: {
  1192. // 获取图片域名请求url fileDoMainName
  1193. getFileDoMainName() {
  1194. doMainName().then(res => {
  1195. if(res.code==200) {
  1196. this.doMainNameUrl = res.data;
  1197. console.log("898989898========")
  1198. console.log(this.doMainNameUrl)
  1199. }
  1200. }).catch(err => {
  1201. console.log(err)
  1202. })
  1203. },
  1204. // 图片上传
  1205. handleRemove(data, file, fileList) {
  1206. console.log("========data=======");
  1207. console.log(data);
  1208. console.log("========fileList=======");
  1209. console.log(fileList);
  1210. var goodPaths = [];
  1211. for (let i = 0; i < fileList.length; i++) {
  1212. const imgUrl = fileList[i].url;
  1213. if (imgUrl.includes("/file/")) {
  1214. imgUrl = imgUrl.substring(imgUrl.lastIndexOf("\/file\/") + 5, imgUrl.length);
  1215. goodPaths.push(imgUrl);
  1216. }
  1217. }
  1218. console.log("888888888888888");
  1219. console.log(goodPaths);
  1220. if (data.paramsType == 1) {
  1221. this.detailParm.carGoodKeys[data.index].paths = goodPaths.join(',');
  1222. }
  1223. if (data.paramsType == 2) {
  1224. this.detailParm.carGoodLinks[data.index].paths = goodPaths.join(',');
  1225. }
  1226. console.log("99999999999999");
  1227. console.log(this.detailParm);
  1228. },
  1229. handlePreview(file) {
  1230. console.log("======handlePreview=======");
  1231. console.log(file);
  1232. },
  1233. uploadImgSuccess(data, res, file) {
  1234. if(res.code==200) {
  1235. const picIndex = res.data.list[0].path.lastIndexOf("\/");
  1236. this.fileImages.name = res.data.list[0].path.substring(picIndex + 1, res.data.list[0].path.length);
  1237. this.fileImages.url = this.doMainNameUrl + res.data.list[0].path;
  1238. var oldPaths = null;
  1239. if (data.paramsType == 1) {
  1240. oldPaths = this.detailParm.carGoodKeys[data.index].paths;
  1241. if (oldPaths != "undefined" && oldPaths != null && oldPaths != "" && oldPaths != "null" && oldPaths != "NULL") {
  1242. oldPaths = oldPaths + "," + res.data.list[0].path;
  1243. } else {
  1244. oldPaths = res.data.list[0].path;
  1245. }
  1246. this.detailParm.carGoodKeys[data.index].paths = oldPaths;
  1247. }
  1248. if (data.paramsType == 2) {
  1249. oldPaths = this.detailParm.carGoodLinks[data.index].paths;
  1250. if (oldPaths != "undefined" && oldPaths != null && oldPaths != "" && oldPaths != "null" && oldPaths != "NULL") {
  1251. oldPaths = oldPaths + "," + res.data.list[0].path;
  1252. } else {
  1253. oldPaths = res.data.list[0].path;
  1254. console.log("oldPaths--" + oldPaths)
  1255. }
  1256. this.detailParm.carGoodLinks[data.index].paths = oldPaths;
  1257. }
  1258. console.log(this.detailParm);
  1259. }
  1260. },
  1261. //重置
  1262. resetForm() {
  1263. this.searchParm.status=null;
  1264. this.searchParm.paramsType=null;
  1265. this.searchParm.country=null;
  1266. this.searchParm.account=null;
  1267. this.goSearch();
  1268. },
  1269. beforeRemove(file, fileList) {
  1270. return this.$confirm(`确定移除 ${ file.name }?`);
  1271. },
  1272. beforeImgUpload(file) {
  1273. console.log(file);
  1274. const isXlsImg = file.type === 'image/img';
  1275. const isXlsJpg = file.type === 'image/jpg';
  1276. const isXlsPng = file.type === 'image/png';
  1277. const isXlsJpeg = file.type === 'image/jpeg';
  1278. console.log("isXlsImg:" + isXlsImg);
  1279. console.log("isXlsJpg:" + isXlsJpg);
  1280. console.log("isXlsPng:" + isXlsPng);
  1281. console.log("isXlsJpeg:" + isXlsJpeg);
  1282. const isLt10M = file.size / 1024 / 1024 < 5;
  1283. const isXls = true;
  1284. if (!isXlsImg && !isXlsJpg && !isXlsPng && !isXlsJpeg) {
  1285. this.$message.error('上传头像图片只能是img/jpg/png/jpeg 格式!');
  1286. isXls = false;
  1287. }
  1288. const isLt5M = file.size / 1024 / 1024 <5;
  1289. if (!isLt5M) {
  1290. this.$message.error('上传Excel文件大小不能超过 5MB!');
  1291. }
  1292. return isXls && isLt5M;
  1293. },
  1294. // input 增加 删除方法 -新增
  1295. addItemLink() {
  1296. this.addParm.carGoodLinks.push({
  1297. paramsType: 2
  1298. });
  1299. },
  1300. deleteItemLink(item,index) {
  1301. this.addParm.carGoodLinks.splice(index, 1);
  1302. },
  1303. addItemKey() {
  1304. this.addParm.carGoodKeys.push({
  1305. paramsType: 1
  1306. });
  1307. },
  1308. deleteItemKey(item,index) {
  1309. this.addParm.carGoodKeys.splice(index, 1);
  1310. },
  1311. // input 增加 删除方法 - 修改
  1312. addEditItemLink() {
  1313. this.editParm.carGoodLinks.push({
  1314. paramsType: 2
  1315. });
  1316. },
  1317. deleteEditItemLink(item,index) {
  1318. this.editParm.carGoodLinks.splice(index, 1);
  1319. },
  1320. addEditItemKey() {
  1321. this.editParm.carGoodKeys.push({
  1322. paramsType: 1
  1323. });
  1324. },
  1325. deleteEditItemKey(item,index) {
  1326. this.editParm.carGoodKeys.splice(index, 1);
  1327. },
  1328. changeCheckRange(val) {
  1329. this.labelVal = val;
  1330. },
  1331. // 获取所有公司信息
  1332. getCompanyAll() {
  1333. getAll()
  1334. .then(res => {
  1335. this.companys = res.data;
  1336. if (res.code == 200) {
  1337. console.log(this.companys);
  1338. }
  1339. })
  1340. .catch(() => {});
  1341. },
  1342. resetBuyerForm() {
  1343. this.searchBuyerParm.account = null;
  1344. this.searchBuyerParm.pwd = null;
  1345. this.searchBuyerParm.nickName = null;
  1346. this.searchBuyerParm.companyId = null;
  1347. this.searchBuyerParm.platformId = null;
  1348. this.goSearchBuyer();
  1349. },
  1350. // 查询
  1351. goSearch() {
  1352. this.searchParm.page=1;
  1353. this.getCompanyAll();
  1354. this.getDataList();
  1355. },
  1356. goSearchBuyer() {
  1357. this.dialogBuyerVisible = true;
  1358. this.searchBuyerParm.page = 1;
  1359. this.searchBuyerParm.platformId = 1;
  1360. this.getBuyerDataList();
  1361. },
  1362. getBuyerDataList() {
  1363. getBuyerList(this.searchBuyerParm)
  1364. .then(res => {
  1365. console.log(res);
  1366. if (res.code == 200) {
  1367. this.buyerList = res.data.list;
  1368. this.buyerTotal = res.data.total;
  1369. }
  1370. })
  1371. .catch(err => {
  1372. console.log(err);
  1373. });
  1374. },
  1375. getBuyerById(data){
  1376. this.account = data.account;
  1377. this.buyerId = data.id;
  1378. if(this.dialogAddVisible == true) {
  1379. this.addParm.buyerId = data.id;
  1380. this.addParm.account = data.account;
  1381. }
  1382. if(this.dialogEditVisible == true) {
  1383. this.editParm.buyerId = data.id;
  1384. this.editParm.account = data.account;
  1385. }
  1386. this.dialogBuyerVisible = false;
  1387. console.log(data);
  1388. this.$message.success("选择成功");
  1389. },
  1390. // 查看买家信息根据id
  1391. getBuyerBtnById(id) {
  1392. getBuyerById({ id })
  1393. .then(res => {
  1394. if (res.code == 200) {
  1395. this.detailBuyerParm.id = res.data.id;
  1396. this.detailBuyerParm.nickName = res.data.nickName;
  1397. this.detailBuyerParm.pwd = res.data.pwd;
  1398. this.detailBuyerParm.account = res.data.account;
  1399. this.detailBuyerParm.companyId = res.data.companyId;
  1400. this.detailBuyerParm.platformId = res.data.platformId;
  1401. this.detailBuyerParm.contntryShort = res.data.contntryShort;
  1402. this.detailBuyerParm.vpnId = res.data.vpnId;
  1403. this.detailBuyerParm.vpnIp = res.data.ipAddress;
  1404. this.detailBuyerParm.cardNumber = res.data.number;
  1405. this.detailBuyerParm.cardId = res.data.cardId;
  1406. this.detailBuyerParm.level = res.data.level;
  1407. this.detailBuyerParm.occupyStatus = res.data.occupyStatus;
  1408. this.detailBuyerParm.occupyAccount = res.data.occupyAccount;
  1409. this.detailBuyerParm.balance = res.data.balance;
  1410. this.detailBuyerParm.buyTotalMoney = res.data.buyTotalMoney;
  1411. this.detailBuyerParm.addressline1 = res.data.addressline1;
  1412. this.detailBuyerParm.country = res.data.country;
  1413. this.detailBuyerParm.state = res.data.state;
  1414. this.detailBuyerParm.tel = res.data.tel;
  1415. this.detailBuyerParm.lastname = res.data.lastname;
  1416. this.detailBuyerParm.vatNumber = res.data.vatNumber;
  1417. this.detailBuyerParm.city = res.data.city;
  1418. this.detailBuyerParm.addressline2 = res.data.addressline2;
  1419. this.detailBuyerParm.firstname = res.data.firstname;
  1420. this.detailBuyerParm.postalcode = res.data.postalcode;
  1421. this.detailBuyerParm.status = res.data.status;
  1422. this.dialogBuyerDetailVisible = true;
  1423. }
  1424. })
  1425. .catch(err => {
  1426. console.log(err);
  1427. });
  1428. },
  1429. beforeAvatarUpload(file) {
  1430. console.log(file);
  1431. // const isXlsl = file.type === 'xlsl';
  1432. const isLt10M = file.size / 1024 / 1024 <10;
  1433. // if (!isXlsl) {
  1434. // this.$message.error('上传头像图片只能是 xlsl 格式!');
  1435. // }
  1436. if (!isLt10M) {
  1437. this.$message.error('上传头像图片大小不能超过 10MB!');
  1438. }
  1439. // return isXlsl && isLt10M;
  1440. return isLt10M;
  1441. },
  1442. uploadSuccess(res, file) {
  1443. this.dialogImportVisible = false;
  1444. if(res.code==200) {
  1445. console.log(res.data);
  1446. this.$message.success('导入成功!');
  1447. if(res.data != null) {
  1448. window.location.href = res.data;
  1449. }
  1450. }
  1451. this.getDataList();
  1452. },
  1453. // 新增
  1454. addBtn(){
  1455. this.dialogAddVisible = true;
  1456. this.addParm = {
  1457. buyerId:null,
  1458. paramsType: null,
  1459. shopName: null,
  1460. carGoodKeys:[
  1461. {
  1462. keyWord:null,
  1463. title:null,
  1464. specification:null,
  1465. color:null,
  1466. number:null,
  1467. sectionMin:null,
  1468. sectionMax:null,
  1469. item:null,
  1470. paramsType:1
  1471. }
  1472. ],
  1473. carGoodLinks:[
  1474. {
  1475. link:null,
  1476. specification:null,
  1477. color:null,
  1478. number:null,
  1479. paramsType:2
  1480. }
  1481. ]
  1482. };
  1483. },
  1484. // 导入
  1485. importBtn() {
  1486. this.dialogImportVisible = true
  1487. },
  1488. exportTempBtn() {
  1489. console.log(this.tempUrl)
  1490. window.location.href = this.tempUrl;
  1491. },
  1492. // 根据id删除
  1493. delById(id){
  1494. this.$confirm('确认删除?','提示',{
  1495. confirmButtonText: '确定',
  1496. cancelButtonText: '取消',
  1497. type: 'warning'
  1498. }).then(() => {
  1499. delById({id}).then(res => {
  1500. if(res.code==200) {
  1501. this.$message.success('删除成功!')
  1502. this.getDataList()
  1503. } else {
  1504. this.$message.warning(res);
  1505. }
  1506. }).catch(err => {
  1507. this.$message.error(err);
  1508. console.log(err)
  1509. })
  1510. }).catch(() => {
  1511. this.$message.info('取消删除')
  1512. })
  1513. },
  1514. // 根据id 下单成功
  1515. orderSuccessBtn(id){
  1516. this.$confirm('确认下单成功?','提示',{
  1517. confirmButtonText: '确定',
  1518. cancelButtonText: '取消',
  1519. type: 'warning'
  1520. }).then(() => {
  1521. orderSuccess({id}).then(res => {
  1522. if(res.code==200) {
  1523. this.$message.success('下单成功!')
  1524. this.getDataList()
  1525. } else {
  1526. this.$message.warning(res);
  1527. }
  1528. }).catch(err => {
  1529. this.$message.error(err);
  1530. console.log(err)
  1531. })
  1532. }).catch(() => {
  1533. this.$message.info('取消下单成功')
  1534. })
  1535. },
  1536. // 根据id 支付成功
  1537. toBeCatchBtn(id){
  1538. this.$confirm('确认支付成功?','提示',{
  1539. confirmButtonText: '确定',
  1540. cancelButtonText: '取消',
  1541. type: 'warning'
  1542. }).then(() => {
  1543. toBeCatch({id}).then(res => {
  1544. if(res.code==200) {
  1545. this.$message.success('支付成功!')
  1546. this.getDataList()
  1547. } else {
  1548. this.$message.warning(res);
  1549. }
  1550. }).catch(err => {
  1551. this.$message.error(err);
  1552. console.log(err)
  1553. })
  1554. }).catch(() => {
  1555. this.$message.info('取消支付成功')
  1556. })
  1557. },
  1558. // 根据id 设置状态异常
  1559. abNormalById(id){
  1560. this.$confirm('确认状态修改为异常?','提示',{
  1561. confirmButtonText: '确定',
  1562. cancelButtonText: '取消',
  1563. type: 'warning'
  1564. }).then(() => {
  1565. abMormal({id}).then(res => {
  1566. if(res.code==200) {
  1567. this.$message.success('修改异常状态成功!')
  1568. this.getDataList()
  1569. }
  1570. }).catch(err => {
  1571. this.$message.error(err);
  1572. console.log(err)
  1573. })
  1574. }).catch(() => {
  1575. this.$message.info('取消修改')
  1576. })
  1577. },
  1578. // 修改
  1579. editById(value){
  1580. getEditDetailById({id: value}).then(res => {
  1581. if(res.code==200) {
  1582. this.editParm.id = res.data.id;
  1583. this.editParm.buyerId= res.data.buyerId;
  1584. this.editParm.account= res.data.account;
  1585. this.editParm.paramsType = res.data.paramsType;
  1586. if(res.data.paramsType === 1) {
  1587. this.editParm.carGoodKeys = res.data.carGoodKeys;
  1588. this.editParm.carGoodLinks = [
  1589. {
  1590. link:null,
  1591. specification:null,
  1592. color:null,
  1593. number:null,
  1594. paramsType:2
  1595. }
  1596. ];
  1597. }
  1598. if(res.data.paramsType === 2) {
  1599. this.editParm.carGoodLinks = res.data.carGoodLinks;
  1600. this.editParm.carGoodKeys = [
  1601. {
  1602. keyWord:null,
  1603. title:null,
  1604. specification:null,
  1605. color:null,
  1606. number:null,
  1607. sectionMin:null,
  1608. sectionMax:null,
  1609. item:null,
  1610. paramsType:1
  1611. }
  1612. ];
  1613. }
  1614. this.dialogEditVisible = true;
  1615. this.labelVal = res.data.paramsType;
  1616. // this.$refs.editParm.clearValidate();
  1617. }
  1618. }).catch(err => {
  1619. this.$message.error(err);
  1620. console.log(err)
  1621. })
  1622. },
  1623. // 确认修改
  1624. sureEdit(editParm){
  1625. console.log("-----edit");
  1626. this.$refs[editParm].validate((valid) => {
  1627. if (valid) {
  1628. this.$refs.editParm.clearValidate();
  1629. if(this.editParm.paramsType === 2) {
  1630. this.editParm.carGoodKeys = null;
  1631. }
  1632. if(this.editParm.paramsType === 1) {
  1633. this.editParm.carGoodLinks = null;
  1634. }
  1635. sureEditById(this.editParm).then(res => {
  1636. if(res.code==200) {
  1637. this.editParm.buyerId = this.buyerId;
  1638. this.dialogEditVisible = false
  1639. this.$message.success('修改成功!')
  1640. this.getDataList()
  1641. }
  1642. }).catch(err => {
  1643. this.$message.error(err);
  1644. console.log(err)
  1645. })
  1646. } else {
  1647. console.log('error submit!!');
  1648. return false;
  1649. }
  1650. });
  1651. },
  1652. sureEditCancle(editParm) {
  1653. dialogEditVisible=flase
  1654. this.$refs.editParm.clearValidate();
  1655. },
  1656. sureWellReceivedCancle(detailParm) {
  1657. dialogWellReceivedVisible=flase
  1658. this.$refs.detailParm.clearValidate();
  1659. },
  1660. // 确认好评
  1661. sureWellReceived(detailParm){
  1662. // 判断 图片评论 图片必填
  1663. // console.log('error submit!!');
  1664. // return false;
  1665. // dialogWellReceivedGoods
  1666. // 封装goods
  1667. var goods = null;
  1668. this.dialogWellReceived.dialogWellReceivedGoods = [];
  1669. this.dialogWellReceived.id = this.detailParm.id;
  1670. if(this.detailParm.paramsType === 1) {
  1671. goods = this.detailParm.carGoodKeys;
  1672. }
  1673. if(this.detailParm.paramsType === 2) {
  1674. goods = this.detailParm.carGoodLinks;
  1675. }
  1676. for (let item of goods) {
  1677. var wellReceived = {
  1678. id:null,
  1679. comment:null,
  1680. paths:null
  1681. };
  1682. wellReceived.id = item.id;
  1683. wellReceived.comment = item.comment;
  1684. wellReceived.paths = item.paths;
  1685. this.dialogWellReceived.dialogWellReceivedGoods.push(wellReceived);
  1686. }
  1687. wellReceive(this.dialogWellReceived).then(res => {
  1688. if(res.code==200) {
  1689. this.addParm.buyerId = this.buyerId;
  1690. this.dialogWellReceivedVisible = false
  1691. this.$message.success('评论成功!')
  1692. this.getDataList()
  1693. }
  1694. }).catch(err => {
  1695. this.$message.error(err);
  1696. console.log(err)
  1697. })
  1698. },
  1699. // 确认新增
  1700. sureAdd(addParm){
  1701. this.$refs[addParm].validate((valid) => {
  1702. if (valid) {
  1703. this.$refs.addParm.clearValidate();
  1704. if(this.addParm.paramsType === 2) {
  1705. this.addParm.carGoodKeys = null;
  1706. }
  1707. if(this.addParm.paramsType === 1) {
  1708. this.addParm.carGoodLinks = null;
  1709. }
  1710. add(this.addParm).then(res => {
  1711. if(res.code==200) {
  1712. this.addParm.buyerId = this.buyerId;
  1713. this.dialogAddVisible = false
  1714. this.$message.success('新增成功!')
  1715. this.getDataList()
  1716. }
  1717. }).catch(err => {
  1718. this.$message.error(err);
  1719. console.log(err)
  1720. })
  1721. } else {
  1722. console.log('error submit!!');
  1723. return false;
  1724. }
  1725. });
  1726. },
  1727. sureAddCancle(addParm) {
  1728. dialogAddVisible=false;
  1729. this.$refs.addParm.clearValidate();
  1730. },
  1731. // 查看根据id
  1732. getBtnById(id){
  1733. getEditDetailById({id}).then(res => {
  1734. if(res.code==200) {
  1735. this.detailParm.id = res.data.id;
  1736. this.detailParm.buyerId= res.data.buyerId;
  1737. this.detailParm.account= res.data.account;
  1738. this.detailParm.paramsType = res.data.paramsType;
  1739. this.detailParm.carGoodKeys = res.data.carGoodKeys;
  1740. this.detailParm.carGoodLinks = res.data.carGoodLinks;
  1741. this.dialogDetailVisible = true
  1742. this.labelVal = res.data.paramsType;
  1743. }
  1744. }).catch(err => {
  1745. console.log(err)
  1746. })
  1747. },
  1748. // 敦煌好评回显 - 查看根据id
  1749. getBtnWellReceivedById(id){
  1750. getEditDetailById({id}).then(res => {
  1751. if(res.code==200) {
  1752. this.detailParm.id = res.data.id;
  1753. this.detailParm.buyerId= res.data.buyerId;
  1754. this.detailParm.account= res.data.account;
  1755. this.detailParm.paramsType = res.data.paramsType;
  1756. this.detailParm.carGoodKeys = res.data.carGoodKeys;
  1757. this.detailParm.carGoodLinks = res.data.carGoodLinks;
  1758. var goods = null;
  1759. if (this.detailParm.paramsType == 1) {
  1760. goods = this.detailParm.carGoodKeys;
  1761. }
  1762. if (this.detailParm.paramsType == 2) {
  1763. goods = this.detailParm.carGoodLinks;
  1764. }
  1765. var fileImages = {
  1766. name: null,
  1767. url: null
  1768. };
  1769. // fileList + i 赋值每个对象的所有商品images
  1770. for (let i in goods) {
  1771. var good = goods[i];
  1772. console.log("----------------------0")
  1773. console.log(good)
  1774. if (good.paths == "undefined" || good.paths == null || good.paths == "" || good.paths == "null" || good.paths == "NULL") {
  1775. console.log("----------------------1")
  1776. this.fileList[i] = null;
  1777. }else if(!good.paths.includes(",")) {
  1778. console.log("----------------------2")
  1779. const index = good.paths.lastIndexOf("\/");
  1780. fileImages.name = good.paths.substring(index + 1, good.paths.length);
  1781. fileImages.url = this.doMainNameUrl + good.paths;
  1782. var fileImageList = [];
  1783. fileImageList.push(fileImages);
  1784. this.fileList[i] = fileImageList;
  1785. } else {
  1786. console.log("----------------------3")
  1787. this.fileList[i] = good.paths.split(',').map(val => {
  1788. return {name: val.substring(val.lastIndexOf("\/") + 1, val.length), url: this.doMainNameUrl + val}
  1789. console.log("url:" + val);
  1790. })
  1791. }
  1792. console.log("----------------------4---i" + i)
  1793. console.log(this.fileList[i])
  1794. }
  1795. this.dialogWellReceivedVisible = true
  1796. this.labelVal = res.data.paramsType;
  1797. }
  1798. }).catch(err => {
  1799. console.log(err)
  1800. })
  1801. },
  1802. // 获取订单详情
  1803. getOrderBtnById(id){
  1804. getById({id}).then(res => {
  1805. if(res.code==200) {
  1806. this.orderDetailParm.id = res.data.id;
  1807. this.orderDetailParm.createdAt = res.data.createdAt;
  1808. this.orderDetailParm.updatedAt = res.data.updatedAt;
  1809. this.orderDetailParm.amount = res.data.amount;
  1810. this.orderDetailParm.paymentResults = res.data.paymentResults;
  1811. this.orderDetailParm.shop = res.data.shop;
  1812. // this.orderDetailParm.pricesNumber = res.data.pricesNumber;
  1813. // this.orderDetailParm.orderId = res.data.orderId;
  1814. // this.orderDetailParm.shopName = res.data.shopName;
  1815. this.orderDetailParm.orderDate = res.data.orderDate;
  1816. this.dialogOrderDetailVisible = true
  1817. }
  1818. }).catch(err => {
  1819. console.log(err)
  1820. })
  1821. },
  1822. // 分页获取表格数据
  1823. getDataList(){
  1824. getList(this.searchParm).then(res => {
  1825. if(res.code==200) {
  1826. this.list = res.data.list;
  1827. this.total = res.data.total;
  1828. }
  1829. }).catch(err => {
  1830. console.log(err)
  1831. })
  1832. },
  1833. // 分页
  1834. handleSizeChange(val) {
  1835. console.log(`每页 ${val} 条`);
  1836. this.searchParm.pageSize = val;
  1837. this.getDataList();
  1838. },
  1839. handleCurrentChange(val) {
  1840. console.log(`当前页: ${val}`);
  1841. this.searchParm.page = val;
  1842. this.getDataList();
  1843. }
  1844. }
  1845. }
  1846. </script>
  1847. <style rel="stylesheet/scss" lang="scss" scoped>
  1848. </style>