processConfig.vue 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <template>
  2. <view class="page">
  3. <tn-nav-bar fixed>工序追溯</tn-nav-bar>
  4. <view class="" :style="{paddingTop: vuex_custom_bar_height + 'px'}">
  5. <view class="tn-bg-white tn-padding-left tn-padding-right">
  6. <tn-form-item label="产品型号" :labelWidth="200" :borderBottom="false">
  7. <tn-input v-model="productModelName" type="select" placeholder="请选择产品型号" :selectOpen="modelSelectShow" @click="modelSelectShow = true" :showRightIcon="false"></tn-input>
  8. </tn-form-item>
  9. </view>
  10. <view v-if="productModelName && processConfig.processNames" class="tn-margin-sm" >
  11. <view class="tn-margin-top-sm" v-for="(item,index) in processConfig.processNames.split('>')">
  12. <tn-list-cell :radius="true" class="tn-text-center" @click="toProcess(index)">
  13. {{item}}
  14. </tn-list-cell>
  15. </view>
  16. </view>
  17. </view>
  18. <tn-select
  19. v-model="clientSelectShow"
  20. mode="single"
  21. :list="clientList"
  22. @confirm="clientSelectConfirm"
  23. labelName="name"
  24. valueName="id"
  25. ></tn-select>
  26. <tn-select
  27. v-model="modelSelectShow"
  28. mode="single"
  29. :list="modelList"
  30. @confirm="modelSelectConfirm"
  31. labelName="productName"
  32. valueName="id"
  33. ></tn-select>
  34. </view>
  35. </template>
  36. <script setup>
  37. export default {
  38. data(){
  39. return {
  40. modelSelectShow: false,
  41. productModelId:'',
  42. productModelName:'',
  43. modelList: [],
  44. processConfig:{},
  45. }
  46. },
  47. onShow(){
  48. },
  49. onLoad(){
  50. this.getModelSelect()
  51. },
  52. methods: {
  53. async getModelSelect(){
  54. const result= await this.api.request('wx/product/api/modelSelect',{isEnableProcess:'1'},'get')
  55. this.modelList = result
  56. },
  57. async modelSelectConfirm(event) {
  58. this.productModelName = `${event[0]['label']}`
  59. this.productModelId = `${event[0]['value']}`
  60. let item = event[0].item
  61. const result= await this.api.request('wx/product/api/getProcessConfig',{processConfigId:item.processConfigId},'get')
  62. this.processConfig = result
  63. },
  64. toProcess(index){
  65. uni.navigateTo({
  66. url:"/pages/product/process/process?processId="+this.processConfig.processIds.split(',')[index]+"&productModelId="+this.productModelId
  67. })
  68. }
  69. }
  70. }
  71. </script>
  72. <style lang="scss" scoped>
  73. .page {
  74. background-color: $tn-bg-gray-color;
  75. min-height: 100vh;
  76. }
  77. .list__options {
  78. display: flex;
  79. align-items: center;
  80. justify-content: space-between;
  81. }
  82. .list {
  83. &__left {
  84. display: flex;
  85. align-items: center;
  86. justify-content: flex-start;
  87. &__icon, &__image {
  88. margin-right: 18rpx;
  89. }
  90. }
  91. &__right {
  92. display: flex;
  93. align-items: center;
  94. justify-content: flex-end;
  95. }
  96. }
  97. .list-icon-text, .list-image-text {
  98. display: flex;
  99. align-items: center;
  100. justify-content: space-between;
  101. }
  102. .list-image-text {
  103. .list {
  104. &__left {
  105. &__image {
  106. width: 20rpx;
  107. height: 20rpx;
  108. }
  109. }
  110. }
  111. }
  112. </style>