猫妈狗爸伴宠师小程序后端代码
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.

394 lines
12 KiB

3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
  1. <template>
  2. <div class="app-container">
  3. <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px" size="medium" class="ry_form">
  4. <el-form-item label="支付时间" prop="payTime">
  5. <el-date-picker
  6. clearable
  7. size="small"
  8. v-model="queryParams.payTime"
  9. type="datetime"
  10. value-format="yyyy-MM-dd HH:mm:ss"
  11. placeholder="选择支付时间">
  12. </el-date-picker>
  13. </el-form-item>
  14. <el-form-item label="本单酬劳" prop="price">
  15. <el-input
  16. v-model="queryParams.price"
  17. placeholder="请输入本单酬劳"
  18. clearable
  19. size="small"
  20. @keyup.enter.native="handleQuery"
  21. />
  22. </el-form-item>
  23. <el-form-item label="地址" prop="address">
  24. <el-input
  25. v-model="queryParams.address"
  26. placeholder="请输入地址"
  27. clearable
  28. size="small"
  29. @keyup.enter.native="handleQuery"
  30. />
  31. </el-form-item>
  32. <el-form-item label="订单类型" prop="type">
  33. <el-select v-model="queryParams.type" placeholder="请选择订单类型" clearable size="small">
  34. </el-select>
  35. </el-form-item>
  36. <el-form-item label="关联服务者ID" prop="userId">
  37. <el-input
  38. v-model="queryParams.userId"
  39. placeholder="请输入关联服务者ID"
  40. clearable
  41. size="small"
  42. @keyup.enter.native="handleQuery"
  43. />
  44. </el-form-item>
  45. <el-form-item label="关联宠物ID" prop="petId">
  46. <el-input
  47. v-model="queryParams.petId"
  48. placeholder="请输入关联宠物ID"
  49. clearable
  50. size="small"
  51. @keyup.enter.native="handleQuery"
  52. />
  53. </el-form-item>
  54. <el-form-item class="flex_one tr">
  55. <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
  56. <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
  57. </el-form-item>
  58. </el-form>
  59. <el-row :gutter="10" class="mb8">
  60. <el-col :span="1.5">
  61. <el-button
  62. type="primary"
  63. plain
  64. icon="el-icon-plus"
  65. size="mini"
  66. @click="handleAdd"
  67. v-hasPermi="['model:AppletOrder:add']"
  68. >新增</el-button>
  69. </el-col>
  70. <el-col :span="1.5">
  71. <el-button
  72. type="success"
  73. plain
  74. icon="el-icon-edit"
  75. size="mini"
  76. :disabled="single"
  77. @click="handleUpdate"
  78. v-hasPermi="['model:AppletOrder:edit']"
  79. >修改</el-button>
  80. </el-col>
  81. <el-col :span="1.5">
  82. <el-button
  83. type="danger"
  84. plain
  85. icon="el-icon-delete"
  86. size="mini"
  87. :disabled="multiple"
  88. @click="handleDelete"
  89. v-hasPermi="['model:AppletOrder:remove']"
  90. >删除</el-button>
  91. </el-col>
  92. <el-col :span="1.5">
  93. <el-button
  94. type="warning"
  95. plain
  96. icon="el-icon-download"
  97. size="mini"
  98. :loading="exportLoading"
  99. @click="handleExport"
  100. v-hasPermi="['model:AppletOrder:export']"
  101. >导出</el-button>
  102. </el-col>
  103. <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
  104. </el-row>
  105. <el-table v-loading="loading" :data="AppletOrderList" @selection-change="handleSelectionChange">
  106. <el-table-column type="selection" width="55" align="center" />
  107. <el-table-column label="唯一标识" align="center" prop="id" />
  108. <el-table-column label="支付时间" align="center" prop="payTime" width="180" v-if="columns[0].visible">
  109. <template slot-scope="scope">
  110. <span>{{ parseTime(scope.row.payTime, '')}}</span>
  111. </template>
  112. </el-table-column>
  113. <el-table-column label="本单酬劳" align="center" prop="price" v-if="columns[1].visible"/>
  114. <el-table-column label="地址" align="center" prop="address" v-if="columns[2].visible"/>
  115. <el-table-column label="订单类型" align="center" prop="type" v-if="columns[3].visible"/>
  116. <el-table-column label="无法接单原因" align="center" prop="reason" v-if="columns[4].visible"/>
  117. <el-table-column label="关联服务者ID" align="center" prop="userId" v-if="columns[5].visible"/>
  118. <el-table-column label="关联宠物ID" align="center" prop="petId" v-if="columns[6].visible"/>
  119. <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  120. <template slot-scope="scope">
  121. <el-button
  122. size="mini"
  123. type="text"
  124. icon="el-icon-edit"
  125. @click="handleUpdate(scope.row)"
  126. v-hasPermi="['model:AppletOrder:edit']"
  127. >修改</el-button>
  128. <el-button
  129. size="mini"
  130. type="text"
  131. icon="el-icon-delete"
  132. @click="handleDelete(scope.row)"
  133. v-hasPermi="['model:AppletOrder:remove']"
  134. >删除</el-button>
  135. </template>
  136. </el-table-column>
  137. </el-table>
  138. <pagination
  139. v-show="total>0"
  140. :total="total"
  141. :page.sync="queryParams.pageNum"
  142. :limit.sync="queryParams.pageSize"
  143. @pagination="getList"
  144. />
  145. <!-- 添加或修改订单信息对话框 -->
  146. <el-dialog :title="title" :visible.sync="open" width="50%" append-to-body>
  147. <el-form ref="form" :model="form" :rules="rules" label-width="108px" inline class="dialog-form-two">
  148. <el-form-item label="支付时间" prop="payTime">
  149. <el-date-picker clearable size="small"
  150. v-model="form.payTime"
  151. type="datetime"
  152. value-format="yyyy-MM-dd HH:mm:ss"
  153. placeholder="选择支付时间">
  154. </el-date-picker>
  155. </el-form-item>
  156. <el-form-item label="本单酬劳" prop="price">
  157. <el-input v-model="form.price" placeholder="请输入本单酬劳" />
  158. </el-form-item>
  159. <el-form-item label="地址" prop="address">
  160. <el-input v-model="form.address" placeholder="请输入地址" />
  161. </el-form-item>
  162. <el-form-item label="无法接单原因" prop="reason">
  163. <el-input v-model="form.reason" type="textarea" placeholder="请输入内容" />
  164. </el-form-item>
  165. <el-form-item label="关联服务者ID" prop="userId">
  166. <el-input v-model="form.userId" placeholder="请输入关联服务者ID" />
  167. </el-form-item>
  168. <el-form-item label="关联宠物ID" prop="petId">
  169. <el-input v-model="form.petId" placeholder="请输入关联宠物ID" />
  170. </el-form-item>
  171. </el-form>
  172. <div slot="footer" class="dialog-footer">
  173. <el-button type="primary" @click="submitForm"> </el-button>
  174. <el-button @click="cancel"> </el-button>
  175. </div>
  176. </el-dialog>
  177. </div>
  178. </template>
  179. <script>
  180. import { listAppletOrder, getAppletOrder, delAppletOrder, addAppletOrder, updateAppletOrder, exportAppletOrder } from "@/api/model/AppletOrder";
  181. export default {
  182. name: "AppletOrder",
  183. data() {
  184. return {
  185. // 遮罩层
  186. loading: true,
  187. // 导出遮罩层
  188. exportLoading: false,
  189. // 选中数组
  190. ids: [],
  191. // 非单个禁用
  192. single: true,
  193. // 非多个禁用
  194. multiple: true,
  195. // 显示搜索条件
  196. showSearch: true,
  197. // 总条数
  198. total: 0,
  199. // 订单信息表格数据
  200. AppletOrderList: [],
  201. // 弹出层标题
  202. title: "",
  203. // 是否显示弹出层
  204. open: false,
  205. // 查询参数
  206. queryParams: {
  207. pageNum: 1,
  208. pageSize: 10,
  209. payTime: null,
  210. price: null,
  211. address: null,
  212. type: null,
  213. reason: null,
  214. userId: null,
  215. petId: null,
  216. },
  217. // 表单参数
  218. form: {},
  219. // 表单校验
  220. rules: {
  221. createBy: [
  222. { required: true, message: "创建者不能为空", trigger: "blur" }
  223. ],
  224. price: [
  225. { required: true, message: "本单酬劳不能为空", trigger: "blur" }
  226. ],
  227. address: [
  228. { required: true, message: "地址不能为空", trigger: "blur" }
  229. ],
  230. type: [
  231. { required: true, message: "订单类型不能为空", trigger: "change" }
  232. ],
  233. userId: [
  234. { required: true, message: "关联服务者ID不能为空", trigger: "blur" }
  235. ],
  236. petId: [
  237. { required: true, message: "关联宠物ID不能为空", trigger: "blur" }
  238. ],
  239. },
  240. columns: [
  241. { key: 5, label: "支付时间", visible: true },
  242. { key: 6, label: "本单酬劳", visible: true },
  243. { key: 7, label: "地址", visible: true },
  244. { key: 8, label: "订单类型", visible: true },
  245. { key: 9, label: "无法接单原因", visible: true },
  246. { key: 10, label: "关联服务者ID", visible: false },
  247. { key: 11, label: "关联宠物ID", visible: false },
  248. ],
  249. };
  250. },
  251. created() {
  252. this.getList();
  253. },
  254. methods: {
  255. /** 查询订单信息列表 */
  256. getList() {
  257. this.loading = true;
  258. listAppletOrder(this.queryParams).then(response => {
  259. this.AppletOrderList = response.rows;
  260. this.total = response.total;
  261. this.loading = false;
  262. });
  263. },
  264. // 取消按钮
  265. cancel() {
  266. this.open = false;
  267. this.reset();
  268. },
  269. // 表单重置
  270. reset() {
  271. this.form = {
  272. id: null,
  273. createTime: null,
  274. createBy: null,
  275. updateTime: null,
  276. updateBy: null,
  277. payTime: null,
  278. price: null,
  279. address: null,
  280. type: null,
  281. reason: null,
  282. userId: null,
  283. petId: null,
  284. };
  285. this.resetForm("form");
  286. },
  287. /** 搜索按钮操作 */
  288. handleQuery() {
  289. this.queryParams.pageNum = 1;
  290. this.getList();
  291. },
  292. /** 重置按钮操作 */
  293. resetQuery() {
  294. this.resetForm("queryForm");
  295. this.handleQuery();
  296. },
  297. // 多选框选中数据
  298. handleSelectionChange(selection) {
  299. this.ids = selection.map(item => item.id)
  300. this.single = selection.length!==1
  301. this.multiple = !selection.length
  302. },
  303. /** 新增按钮操作 */
  304. handleAdd() {
  305. this.reset();
  306. this.open = true;
  307. this.title = "添加订单信息";
  308. },
  309. /** 修改按钮操作 */
  310. handleUpdate(row) {
  311. this.reset();
  312. const id = row.id || this.ids
  313. getAppletOrder(id).then(response => {
  314. this.form = response.data;
  315. this.open = true;
  316. this.title = "修改订单信息";
  317. });
  318. },
  319. /** 提交按钮 */
  320. submitForm() {
  321. this.$refs["form"].validate(valid => {
  322. if (valid) {
  323. if (this.form.id != null) {
  324. updateAppletOrder(this.form).then(response => {
  325. this.$modal.msgSuccess("修改成功");
  326. this.open = false;
  327. this.getList();
  328. });
  329. } else {
  330. addAppletOrder(this.form).then(response => {
  331. this.$modal.msgSuccess("新增成功");
  332. this.open = false;
  333. this.getList();
  334. });
  335. }
  336. }
  337. });
  338. },
  339. /** 删除按钮操作 */
  340. handleDelete(row) {
  341. const ids = row.id || this.ids;
  342. this.$modal.confirm('是否确认删除订单信息编号为"' + ids + '"的数据项?').then(function() {
  343. return delAppletOrder(ids);
  344. }).then(() => {
  345. this.getList();
  346. this.$modal.msgSuccess("删除成功");
  347. }).catch(() => {});
  348. },
  349. /** 导出按钮操作 */
  350. handleExport() {
  351. const queryParams = this.queryParams;
  352. this.$modal.confirm('是否确认导出所有订单信息数据项?').then(() => {
  353. this.exportLoading = true;
  354. return exportAppletOrder(queryParams);
  355. }).then(response => {
  356. this.download(response.msg);
  357. this.exportLoading = false;
  358. }).catch(() => {});
  359. }
  360. }
  361. };
  362. </script>