index.vue 4.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <!-- 钻石搜索-单颗彩钻 -->
  2. <template>
  3. <app-view>
  4. <template #header>
  5. <el-form ref="formRef" label-width="80px" :rules="formRules">
  6. <el-form-item label="形状">
  7. <app-multiple :data-list="enums.shapeTypeList" v-model="formData.zsshapetype" checkbox />
  8. </el-form-item>
  9. <el-form-item label="颜色">
  10. <app-multiple :data-list="enums.colorTypeList" v-model="formData.zscolortype" checkbox />
  11. </el-form-item>
  12. <el-form-item label="净度">
  13. <app-multiple :data-list="enums.clarityTypeList" v-model="formData.zsclaritytype" checkbox />
  14. </el-form-item>
  15. <el-form-item label="对称">
  16. <app-multiple :data-list="enums.symmetryTypeList" v-model="formData.zssymmetrytype" checkbox />
  17. </el-form-item>
  18. <el-form-item label="抛光">
  19. <app-multiple :data-list="enums.polishTypeList" v-model="formData.zspolishtype" checkbox />
  20. </el-form-item>
  21. <el-form-item label="荧光">
  22. <app-multiple :data-list="enums.fluorescenceTypeList" v-model="formData.zsfluorescencetype"
  23. checkbox />
  24. </el-form-item>
  25. <el-form-item label="仓库">
  26. <el-select v-model="formData.warehouseid" clearable>
  27. <el-option :label="item.warehousename" :value="item.autoid"
  28. v-for="(item, index) in warehouseList" :key="index" />
  29. </el-select>
  30. </el-form-item>
  31. <el-form-item label="货币">
  32. <app-multiple :data-list="enums.currencyTypeList" v-model="formData.zscurrencytype" checkbox />
  33. </el-form-item>
  34. <el-form-item label="证书">
  35. <app-multiple :data-list="enums.certTypeList" v-model="formData.zscerttype" checkbox />
  36. </el-form-item>
  37. <el-form-item label="克拉重量" prop="weight">
  38. <div class="el-form-item--col">
  39. <el-input-number placeholder="从" v-model="formData.weight1" :precision="2" :controls="false" />
  40. <span>-</span>
  41. <el-input-number placeholder="至" v-model="formData.weight2" :precision="2" :controls="false" />
  42. </div>
  43. </el-form-item>
  44. <el-form-item>
  45. <el-button type="primary" :loading="loading" @click="onSearch">搜索</el-button>
  46. <el-button :disabled="loading" @click="onReset">重置</el-button>
  47. </el-form-item>
  48. </el-form>
  49. </template>
  50. <app-table :data="dataList" v-model:columns="columns" :show-header="false" :loading="loading">
  51. <template #operate="{ row }">
  52. <app-auth-operation :options="{ selectedRow: row }" @closed="getSellOrderList" />
  53. </template>
  54. <template #footer>
  55. <app-pagination :total="total" v-model:page-size="pageSize" v-model:page-index="pageIndex"
  56. @change="getSellOrderList" />
  57. </template>
  58. </app-table>
  59. </app-view>
  60. </template>
  61. <script lang="ts" setup>
  62. import { ref } from 'vue'
  63. import type { FormInstance, FormRules } from 'element-plus'
  64. import { useSearch } from '@/business/search'
  65. import { Category } from '@/constants/diamond'
  66. import AppMultiple from '@pc/components/base/multiple/index.vue'
  67. import AppTable from '@pc/components/base/table/index.vue'
  68. import AppAuthOperation from '@pc/components/modules/auth-operation/index.vue'
  69. import AppPagination from '@pc/components/base/pagination/index.vue'
  70. const { loading, warehouseList, dataList, columns, total, pageIndex, pageSize, formData, enums, getSellOrderList, onSearch, onReset } = useSearch(Category.Fancy)
  71. const formRef = ref<FormInstance>()
  72. const formRules: FormRules = {
  73. weight: [{
  74. validator: (rule, value, callback) => {
  75. const { weight1 = 0, weight2 = 0 } = formData.value
  76. if (weight1 && weight2) {
  77. if (weight1 > weight2) {
  78. callback(new Error('克拉重量应该从小到大'))
  79. } else {
  80. callback()
  81. }
  82. } else {
  83. if ((!weight1 || !weight2) && (weight1 || weight2)) {
  84. callback(new Error('克拉重量不能小于 0'))
  85. } else {
  86. callback()
  87. }
  88. }
  89. }
  90. }],
  91. }
  92. getSellOrderList()
  93. </script>