_detailModal.blade.php 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <div class="modal fade" tabindex="-1" role="dialog" id="detailModal" v-if="models[index]">
  2. <div class="modal-dialog modal-xl modal-dialog-centered modal-dialog-scrollable">
  3. <div class="modal-content">
  4. <div class="modal-header">
  5. <div class="row w-100">
  6. <input id="file" type="file" style="display:none" accept=".csv, .xlsx, .xls" @change="importDetail($event)"/>
  7. @can("计费模型-物流-录入")<button type="button" class="btn btn-sm btn-outline-info col-1" @click="selectFile()">导入</button>@endcan
  8. <button type="button" class="btn btn-sm btn-outline-dark col-1" @click="exportDetail()">导出</button>
  9. <div class="font-weight-bolder offset-3">“<label class="text-primary">@{{ models[index].name }}</label>”物流收费标准</div>
  10. </div>
  11. </div>
  12. <div class="modal-body">
  13. <div class="w-100 text-center mb-1" v-if="errors.length > 0">
  14. <button class="btn btn-sm btn-danger mb-1" @click="isShowError = true" v-if="!isShowError">@{{ errors.length }}条错误,点击展开</button>
  15. <button class="btn btn-sm btn-dark mb-1" @click="isShowError = false" v-else>收起错误展示</button>
  16. <div v-if="isShowError" class="container-fluid text-danger font-weight-bolder">
  17. <div class="row text-left">
  18. <div class="col-6" v-for="error in errors">@{{ error }}</div>
  19. </div>
  20. </div>
  21. </div>
  22. <div class="w-100 text-primary text-center mt-0" v-else>
  23. <div class="small"><b class="text-dark font-weight-bold">导入导出表头示例:</b>计数单位,计数区间,省份,市,单价,送货费,起始计费,起始计数,费率</div>
  24. </div>
  25. <table class="table table-sm table-bordered">
  26. <tr class="text-success">
  27. <th>操作</th>
  28. <th>计价单位</th>
  29. <th>计价区间</th>
  30. <th style="min-width: 100px">省份</th>
  31. <th style="min-width: 100px">市</th>
  32. <th>单价</th>
  33. <th>送货费</th>
  34. <th>起始计费</th>
  35. <th>起始计数</th>
  36. <th>费率(%)</th>
  37. <th>操作</th>
  38. </tr>
  39. <tr v-for="(detail,i) in details[models[index].id]">
  40. <td>
  41. <div v-if="detail.edit">
  42. <button type="button" class="btn btn-sm btn-success" @click="submitDetail(detail)">确定</button>
  43. <button type="button" class="btn btn-sm btn-danger" @click="delDetail(detail,i)">取消</button>
  44. </div>
  45. <div v-else>
  46. @can("计费模型-物流-录入")<button type="button" class="btn btn-sm btn-outline-info" @click="addDetail()" v-if="i == 0">新增</button>@endcan
  47. @can("计费模型-物流-编辑")<button type="button" class="btn btn-sm btn-outline-primary" v-if="detail.id" @click="updateDetail(detail)">修改</button>@endcan
  48. </div>
  49. </td>
  50. <td>
  51. <label v-if="detail.edit && !detail.id">
  52. <select class="form-control form-control-sm col-6" style="min-width: 80px" v-model="detail.unit_id" @change="$forceUpdate()">
  53. <option v-for="unit in units" :value="unit.id" v-if="unit.id == models[index].unitId || unit.id == models[index].otherUnitId">@{{ unit.name }}</option>
  54. </select>
  55. </label>
  56. <label v-else>@{{ detail.unit ? detail.unit.name : '' }}</label>
  57. </td>
  58. <td>
  59. <label v-if="detail.edit && !detail.id">
  60. <select class="form-control form-control-sm col-6" style="min-width: 80px" v-model="detail.range">
  61. <option v-for="range in (detail.unit_id == models[index].unitId ? models[index].unitRange : models[index].otherUnitRange)" :value="range">@{{ range }}</option>
  62. </select>
  63. </label>
  64. <label v-else>@{{ detail.range }}</label>
  65. </td>
  66. <td>
  67. <label v-if="detail.edit && !detail.id">
  68. <select class="form-control form-control-sm" v-model="detail.province_id" @change="$forceUpdate()">
  69. <option v-for="province in provinces" :value="province.id">@{{ province.name }}</option>
  70. </select>
  71. </label>
  72. <label v-else>@{{ detail.province ? detail.province.name : '' }}</label>
  73. </td>
  74. <td>
  75. <label v-if="detail.edit && !detail.id">
  76. <select class="form-control form-control-sm" v-model="detail.city_id" v-if="detail.province_id">
  77. <option v-for="city in cities[detail.province_id]" :value="city.id">@{{ city.name }}</option>
  78. </select>
  79. </label>
  80. <label v-else>@{{ detail.city ? detail.city.name : '' }}</label>
  81. </td>
  82. <td>
  83. <label v-if="detail.edit"><input type="number" min="0" step="0.001" class="form-control form-control-sm"
  84. :id="'unit_price-'+detail.id" v-model="detail.unit_price" :data="detail.unit_price"></label>
  85. <label v-else>@{{ detail.unit_price }}</label>
  86. </td>
  87. <td>
  88. <label v-if="detail.edit"><input type="number" min="0" step="0.001" class="form-control form-control-sm"
  89. :id="'delivery_fee-'+detail.id" v-model="detail.delivery_fee" :data="detail.delivery_fee"></label>
  90. <label v-else>@{{ detail.delivery_fee }}</label>
  91. </td>
  92. <td>
  93. <label v-if="detail.edit"><input type="number" min="0" step="0.001" class="form-control form-control-sm"
  94. :id="'initial_fee-'+detail.id" v-model="detail.initial_fee" :data="detail.initial_fee"></label>
  95. <label v-else>@{{ detail.initial_fee }}</label>
  96. </td>
  97. <td>
  98. <label v-if="detail.edit"><input type="number" min="0" class="form-control form-control-sm"
  99. :id="'initial_amount-'+detail.id" v-model="detail.initial_amount" :data="detail.initial_amount"></label>
  100. <label v-else>@{{ detail.initial_amount }}</label>
  101. </td>
  102. <td>
  103. <label v-if="detail.edit"><input type="number" min="0" step="0.001" class="form-control form-control-sm"
  104. :id="'rate-'+detail.id" v-model="detail.rate" :data="detail.rate"></label>
  105. <label v-else>@{{ detail.rate }}</label>
  106. </td>
  107. <td>
  108. @can("计费模型-物流-编辑")<button type="button" class="btn btn-sm btn-outline-danger" @click="deletePriceModel(detail.id,i)" v-if="detail.id">删</button>@endcan
  109. </td>
  110. </tr>
  111. </table>
  112. </div>
  113. </div>
  114. </div>
  115. </div>