Просмотр исходного кода

feat:完成借用领用模块

coder 1 год назад
Родитель
Сommit
c52a6e23e6

+ 1 - 20
src/pages/administrativeService/teacherTempGoOut/index.vue

@@ -39,25 +39,6 @@ const onSubmit = () => {
     }
   })
 };
-
-const dateResult = ref('');
-const showDatePicker = ref(false);
-const onDateConfirm = ({ selectedValues }) => {
-  dateResult.value = selectedValues.join('/');
-  showDatePicker.value = false;
-  showTimePicker.value = true
-};
-
-const currentTime = ref(['12', '00', '00']);
-const columnsType = ['hour', 'minute', 'second'];
-
-const timeResult = ref('');
-const showTimePicker = ref(false);
-const onTimeConfirm = ({ selectedValues }) => {
-  timeResult.value = selectedValues.join(':');
-  showTimePicker.value = false;
-};
-
 let userList = $ref([])
 const { dept_id } = userInfo;
 request({
@@ -125,7 +106,7 @@ const onSprUserConfirm = ({ selectedValues, selectedOptions }) => {
         </van-popup>
 
       </van-cell-group>
-      <div style="margin: 16px;">
+      <div style="margin:16px;">
         <van-button round block type="primary" native-type="submit">
           提交
         </van-button>

+ 168 - 1
src/pages/borrowReceive/borrowList/index.vue

@@ -1,6 +1,173 @@
 <script setup>
+import { userInfo } from '~/store/user'
+import { showConfirmDialog, showLoadingToast, showToast, closeToast, } from "vant";
+const { uo_type } = userInfo
 
+const isBureau = ref(false)// 当前用户是否局端
+isBureau.value = uo_type === '1'
+const list = ref([])
+const loading = ref(false)
+const finished = ref(false)
+let page = 1
+const param = $ref({
+  keyword: '',
+  xhj_zcmc: '',
+  xhj_zcbh: '',
+  xhj_jlr: '',
+  xhj_pzr: ''
+})
+function onLoad() {
+  loading.value = true
+  request({
+    url: '/xdhq/hqgl_jyly/index',
+    method: 'post',
+    data: {
+      ...param,
+      page,
+      limit: 20,
+      xhj_jlxz: '1',
+    },
+  }).then((res) => {
+    const data = res.data
+    list.value = [...list.value, ...data.page_data]
+    finished.value = data.total_page === page
+    page++
+    loading.value = false
+  })
+}
+function onClickSearch() {
+  reGetList()
+}
+const itemRef1 = ref(null)
+const itemRef2 = ref(null)
+const itemRef3 = ref(null)
+const itemRef4 = ref(null)
+function onConfirm(num) {
+  let temp = [itemRef1, itemRef2, itemRef3, itemRef4]
+  temp[num].value.toggle()
+  reGetList()
+}
+function reGetList() {
+  page = 1
+  list.value = []
+  finished.value = false
+  onLoad()
+}
+
+function giveBack(item) {
+  showConfirmDialog({
+    title: "提示",
+    message: "确认归还?",
+  }).then(() => {
+    showLoadingToast({
+      message: "提交中...",
+      forbidClick: true,
+    });
+    request({
+      url: "/xdhq/hqgl_jyly/edit",
+      data: {
+        xhj_id: item.xhj_id,
+        xdhq_hqgl_jyly: {
+          xhj_zt: '3'
+        },
+      },
+    }).then((res) => {
+      closeToast();
+      if (res.code == 1) {
+        showToast(res.msg);
+        list.value = [];
+        page = 1;
+        onLoad();
+      }
+    });
+  });
+}
 </script>
+
 <template>
-  1234
+  <div v-show="isBureau">
+    <div style="width: 100%;text-align: center;"><span style="font-size: 20px;">本功能仅对校端用户开放</span></div>
+  </div>
+  <div class="index" v-show="!isBureau">
+    <van-search v-model="param.keyword" :clearable="false" show-action placeholder="请输入搜索关键词" @search="onClickSearch">
+      <template #action>
+        <div @click="onClickSearch">
+          搜索
+        </div>
+      </template>
+    </van-search>
+    <van-dropdown-menu>
+      <van-dropdown-item ref="itemRef1" title="资产名称">
+        <van-cell-group inset>
+          <van-field v-model="param.xhj_zcmc" placeholder="请输入资产名称" />
+        </van-cell-group>
+        <div style="padding: 5px 16px;">
+          <van-button type="primary" block round @click="onConfirm(0)">
+            确认
+          </van-button>
+        </div>
+      </van-dropdown-item>
+      <van-dropdown-item ref="itemRef2" title="资产编号">
+        <van-cell-group inset>
+          <van-field v-model="param.xhj_zcbh" placeholder="请输入资产编号" />
+        </van-cell-group>
+        <div style="padding: 5px 16px;">
+          <van-button type="primary" block round @click="onConfirm(1)">
+            确认
+          </van-button>
+        </div>
+      </van-dropdown-item>
+      <van-dropdown-item ref="itemRef3" title="借领人">
+        <van-cell-group inset>
+          <van-field v-model="param.xhj_jlr" placeholder="请输入借领人" />
+        </van-cell-group>
+        <div style="padding: 5px 16px;">
+          <van-button type="primary" block round @click="onConfirm(2)">
+            确认
+          </van-button>
+        </div>
+      </van-dropdown-item>
+      <van-dropdown-item ref="itemRef4" title="批准人">
+        <van-cell-group inset>
+          <van-field v-model="param.xhj_pzr" placeholder="请输入批准人" />
+        </van-cell-group>
+        <div style="padding: 5px 16px;">
+          <van-button type="primary" block round @click="onConfirm(3)">
+            确认
+          </van-button>
+        </div>
+      </van-dropdown-item>
+    </van-dropdown-menu>
+    <van-list v-model:loading="loading" :finished="finished" finished-text="没有更多了" @load="onLoad">
+      <van-cell v-for="item in list" :key="item">
+        <template #title>
+          <span>{{ `${item.xhj_zcmc}\u00A0\u00A0\u00A0 ${item.xhj_zcbh}` }}</span>
+        </template>
+        <template #value>
+          <van-button class="w-60px" v-if="(item.xhj_zt_option_k != 3)" type="primary" size="small"
+            @click="giveBack(item)">归还</van-button>
+          <span v-else-if="item.xhj_zt_option_k == 3">已归还</span>
+        </template>
+        <template #label>
+          <div><span>所属部门:{{ item.xhj_ssbm }}</span></div>
+          <div style="color: black;">
+            <div><span>{{ `借领人:${item.xhj_jlr}\u00A0\u00A0\u00A0批准人${item.xhj_pzr}` }}</span></div>
+            <div><span>借领时间:{{ item.xhj_jlsj }}</span></div>
+          </div>
+        </template>
+      </van-cell>
+    </van-list>
+  </div>
 </template>
+
+<style lang="scss" scoped>
+:deep(.van-cell__title) {
+  width: 70% !important;
+  flex: auto
+}
+
+:deep(.van-cell__value) {
+  width: 30% !important;
+  flex: auto
+}
+</style>

+ 56 - 0
src/pages/borrowReceive/schoolPropertyList/borrowFrom/dateTImePicker.vue

@@ -0,0 +1,56 @@
+<script setup>
+
+const props = defineProps({
+  label: {
+    type: String,
+    default: '',
+  },
+})
+
+defineExpose({
+  getResult
+})
+function getResult() {
+  return result
+}
+let result = $ref('')
+let showDatePicker = $ref(false)
+let showTimePicker = $ref(false)
+
+const onDateConfirm = ({ selectedValues }) => {
+  result = selectedValues.join('/');
+  showDatePicker = false;
+  showTimePicker = true
+};
+const onTimeConfirm = ({ selectedValues }) => {
+  result = result + ' ' + selectedValues.join(':');
+  showTimePicker = false;
+};
+
+let oldResult = ''
+const clickPop = () => {
+  oldResult = result
+  showDatePicker = true
+}
+const clickCancel = () => {
+  result = oldResult
+  showDatePicker = false
+  showTimePicker = false
+
+}
+const currentTime = ref(['12', '00', '00']);
+const columnsType = ['hour', 'minute', 'second'];
+
+const minDate = new Date(2020, 0, 1)
+</script>
+<template>
+  <van-field v-model="result" is-link readonly name="datePicker" :label='props.label' placeholder="点击选择时间"
+    @click="clickPop" :rules="[{ required: true, message: '请选择时间' }]" />
+  <van-popup v-model:show="showDatePicker" position="bottom">
+    <van-date-picker :min-date="minDate" @confirm="onDateConfirm" @cancel="clickCancel" />
+  </van-popup>
+  <van-popup v-model:show="showTimePicker" position="bottom">
+    <van-time-picker @confirm="onTimeConfirm" @cancel="clickCancel" v-model="currentTime" title="选择时间"
+      :columns-type="columnsType" />
+  </van-popup>
+</template>

+ 85 - 0
src/pages/borrowReceive/schoolPropertyList/borrowFrom/index.vue

@@ -0,0 +1,85 @@
+<script setup>
+import { userInfo } from "~/store/user";
+import { showFailToast, showToast } from 'vant'
+import dateTimePicker from './dateTImePicker.vue'
+
+const { uo_type } = userInfo;
+const isBureau = ref(false); // 当前用户是否局端
+isBureau.value = uo_type === "1";
+
+const router = useRouter()
+
+let transParams = $ref({
+  xhj_zcmc: '',
+  xhj_zcbh: '',
+  xhj_ssbm: '',
+  xhj_jlxz: '',
+  xhj_jlr: '',
+  xhj_jlsj: '',
+  xhj_pzr: ''
+})
+const jlsjRef = $ref()
+const onSubmit = () => {
+  transParams.xhj_jlsj = jlsjRef.getResult()
+  request({ url: '/xdhq/hqgl_jyly/add', data: { xdhq_hqgl_jyly: transParams } }).then(res => {
+    if (res.code == '1') {
+      showToast(res.msg);
+      router.go(-1)
+    } else {
+      showFailToast(res.msg);
+    }
+  })
+};
+const cancel = () => {
+  router.go(-1)
+}
+
+const { currentRoute } = useRouter()
+request({
+  url: '/xdhq/hqgl_xcgl/detail',
+  data: {
+    xhx_id: currentRoute.value.query.xhx_id,
+  }
+}).then(res => {
+  if (res.code == 1) {
+    transParams.xhj_zcmc = res.data.one_info.xhx_zcmc
+    transParams.xhj_zcbh = res.data.one_info.xhx_zcbh
+  }
+})
+</script>
+<template>
+  <div v-show="isBureau">
+    <div style="width: 100%;text-align: center;"><span style="font-size: 20px;">本功能仅对校端用户开放</span></div>
+  </div>
+  <div v-show="!isBureau">
+    <van-form @submit="onSubmit">
+      <van-cell-group inset>
+        <van-field v-model="transParams.xhj_zcmc" readonly name="资产名称" label="资产名称" placeholder="请输入资产名称" />
+        <van-field v-model="transParams.xhj_zcbh" readonly name="资产编号" label="资产编号" placeholder="请输入资产名称" />
+        <van-field v-model="transParams.xhj_ssbm" name="所属部门" label="所属部门" placeholder="请输入所属部门"
+          :rules="[{ required: true, message: '请输入所属部门' }]" />
+        <van-field name="radio" label="借领性质" :rules="[{ required: true, message: '请选择借领性质' }]">
+          <template #input>
+            <van-radio-group v-model="transParams.xhj_jlxz" direction="horizontal">
+              <van-radio name="1">借用</van-radio>
+              <van-radio name="2">领用</van-radio>
+            </van-radio-group>
+          </template>
+        </van-field>
+        <van-field v-model="transParams.xhj_jlr" name="借领人" label="借领人" placeholder="请输入借领人"
+          :rules="[{ required: true, message: '请输入借领人' }]" />
+        <dateTimePicker ref="jlsjRef" label="借领时间" />
+        <van-field v-model="transParams.xhj_pzr" name="批准人" label="批准人" placeholder="请输入批准人"
+          :rules="[{ required: true, message: '请输入批准人' }]" />
+      </van-cell-group>
+      <div style="margin: 16px;">
+        <van-button round block type="primary" native-type="submit">
+          提交
+        </van-button>
+        <van-button style="margin-top: 10px;" round block type="default" @click="cancel()">
+          取消
+        </van-button>
+      </div>
+    </van-form>
+  </div>
+</template>

+ 138 - 1
src/pages/borrowReceive/schoolPropertyList/index.vue

@@ -1,6 +1,143 @@
 <script setup>
+import { userInfo } from '~/store/user'
+const { uo_type } = userInfo
 
+const isBureau = ref(false)// 当前用户是否局端
+isBureau.value = uo_type === '1'
+const list = ref([])
+const loading = ref(false)
+const finished = ref(false)
+let page = 1
+const param = $ref({
+  keyword: '',
+  xhx_zcmc: '',
+  xhx_zt: '',
+  xhx_zcfl: '',
+  xhx_spr: ''
+})
+function onLoad() {
+  loading.value = true
+  request({
+    url: '/xdhq/hqgl_xcgl/index',
+    method: 'post',
+    data: {
+      ...param,
+      page,
+      limit: 20,
+    },
+  }).then((res) => {
+    const data = res.data
+    list.value = [...list.value, ...data.page_data]
+    finished.value = data.total_page === page
+    page++
+    loading.value = false
+  })
+}
+function onClickSearch() {
+  reGetList()
+}
+const itemRef1 = ref(null)
+const itemRef2 = ref(null)
+const itemRef3 = ref(null)
+const itemRef4 = ref(null)
+function onConfirm(num) {
+  let temp = [itemRef1, itemRef2, itemRef3, itemRef4]
+  temp[num].value.toggle()
+  reGetList()
+}
+function reGetList() {
+  page = 1
+  list.value = []
+  finished.value = false
+  onLoad()
+}
+const router = useRouter()
+function canBorrow(item) {
+  router.push({
+    path: "/borrowReceive/schoolPropertyList/borrowFrom",
+    query: { xhx_id: item.xhx_id },
+  });
+}
+const statusOption = $ref([{ text: '状态', value: '' }, { text: '可借', value: '1' }, { text: '不可借', value: '2' }])
+function dropItemChange() {
+  reGetList()
+}
 </script>
+
 <template>
-  123
+  <div v-show="isBureau">
+    <div style="width: 100%;text-align: center;"><span style="font-size: 20px;">本功能仅对校端用户开放</span></div>
+  </div>
+  <div class="index" v-show="!isBureau">
+    <van-search v-model="param.keyword" :clearable="false" show-action placeholder="请输入搜索关键词" @search="onClickSearch">
+      <template #action>
+        <div @click="onClickSearch">
+          搜索
+        </div>
+      </template>
+    </van-search>
+    <van-dropdown-menu>
+      <van-dropdown-item ref="itemRef1" title="资产名称">
+        <van-cell-group inset>
+          <van-field v-model="param.xhx_zcmc" placeholder="请输入资产名称" />
+        </van-cell-group>
+        <div style="padding: 5px 16px;">
+          <van-button type="primary" block round @click="onConfirm(0)">
+            确认
+          </van-button>
+        </div>
+      </van-dropdown-item>
+      <van-dropdown-item v-model="param.xhx_zt" :options="statusOption" @change="dropItemChange" />
+      <van-dropdown-item ref="itemRef3" title="资产分类">
+        <van-cell-group inset>
+          <van-field v-model="param.xhx_zcfl" placeholder="请输入资产分类" />
+        </van-cell-group>
+        <div style="padding: 5px 16px;">
+          <van-button type="primary" block round @click="onConfirm(2)">
+            确认
+          </van-button>
+        </div>
+      </van-dropdown-item>
+      <van-dropdown-item ref="itemRef4" title="审批人">
+        <van-cell-group inset>
+          <van-field v-model="param.xhx_spr" placeholder="请输入审批人" />
+        </van-cell-group>
+        <div style="padding: 5px 16px;">
+          <van-button type="primary" block round @click="onConfirm(3)">
+            确认
+          </van-button>
+        </div>
+      </van-dropdown-item>
+    </van-dropdown-menu>
+    <van-list v-model:loading="loading" :finished="finished" finished-text="没有更多了" @load="onLoad">
+      <van-cell v-for="item in list" :key="item">
+        <template #title>
+          <span>{{ `${item.xhx_zcmc}\u00A0\u00A0\u00A0 ${item.xhx_zcbh}` }}</span>
+        </template>
+        <template #value>
+          <van-button class="w-60px" v-if="(item.xhx_zt_option_k != 2)" type="primary" size="small"
+            @click="canBorrow(item)">可借</van-button>
+        </template>
+        <template #label>
+          <div><span>资产分类:{{ item.xhx_zcfl }}</span></div>
+          <div style="color: black;">
+            <div><span>{{ `状态:${item.xhx_zt}\u00A0\u00A0\u00A0单价${item.xhx_dj}` }}</span></div>
+            <div><span>审批人:{{ item.xhx_spr }}</span></div>
+          </div>
+        </template>
+      </van-cell>
+    </van-list>
+  </div>
 </template>
+
+<style lang="scss" scoped>
+:deep(.van-cell__title) {
+  width: 70% !important;
+  flex: auto
+}
+
+:deep(.van-cell__value) {
+  width: 30% !important;
+  flex: auto
+}
+</style>