Compare commits

..

No commits in common. "c5fd049d078be48edb2b790673252bbd095371ac" and "35c7f00ba3aae95930271b66618efa37824abc7e" have entirely different histories.

4 changed files with 44 additions and 82 deletions

View file

@ -1,6 +1,6 @@
{ {
"name": "cmc_fe", "name": "cmc_fe",
"version": "0.1.1", "version": "0.1.0",
"private": true, "private": true,
"scripts": { "scripts": {
"serve": "vue-cli-service serve", "serve": "vue-cli-service serve",

View file

@ -47,21 +47,13 @@
</template> </template>
</template> </template>
<v-divider></v-divider> <v-divider></v-divider>
<v-footer> <v-footer >
<v-banner> <sub>{{ site_info.name }} v{{ site_info.version }}</sub>
<v-banner-text>
<sub>{{ site_info.name }}<br/>
BE v{{ site_info.version }}<br/>
FE v{{ appVersion }}
</sub>
</v-banner-text>
</v-banner>
</v-footer> </v-footer>
</v-list> </v-list>
</v-navigation-drawer> </v-navigation-drawer>
</template> </template>
<script> <script>
import { version } from "@/../package.json"
export default{ export default{
name: "MyNav", name: "MyNav",
props: { props: {
@ -87,7 +79,6 @@ export default{
}, },
data(){ data(){
return { return {
appVersion: version,
items: [], items: [],
drawer: null, drawer: null,
drawer2: false drawer2: false

View file

@ -8,6 +8,5 @@ export default class Customer {
full_title = ""; full_title = "";
at_risk = false; at_risk = false;
address = new CustomerAddress(); address = new CustomerAddress();
notes = {}
} }
</script> </script>

View file

@ -1,47 +1,30 @@
<template> <template>
<v-text-field <h3>Customer List</h3>
clearable <v-responsive
label="Search" max-width="500"
variant="outlined" >
v-model="searchQuery" <v-text-field
density="compact" clearable
append-inner-icon="mdi-magnify"></v-text-field> label="Search"
<v-row> variant="outlined"
<v-col cols="12" sm=12 lg=6> v-model="searchQuery"
<h3>Customer List</h3> density="compact"
<v-progress-linear color="blue" :active="customers_loading" indeterminate> append-inner-icon="mdi-magnify"></v-text-field>
</v-progress-linear> </v-responsive>
<v-list> <RecycleScroller
<RecycleScroller class="scroller"
class="scroller" :items="filteredCustomers"
:items="filteredCustomers" :item-size="50"
:item-size="50" key-field="acc_no"
key-field="acc_no" v-slot="{ item }"
v-slot="{ item }" >
> <v-row class="customer">
<v-list-item @click="getCustomerNotes(item)"> <v-col cols="6">
<template v-slot:title> {{ item.acc_no }} - {{ item.name }}
{{ item.acc_no }} - {{ item.name }} </v-col>
</template> </v-row>
<template v-slot:append> <hr />
<v-btn color="info">Contracts</v-btn> </RecycleScroller>
<v-btn color="warning">Med Feeds</v-btn>
</template>
</v-list-item>
</RecycleScroller>
</v-list>
</v-col>
<v-col cols="12" sm=12 lg=6>
<h3>Notes <v-btn color="warning" size="smaller" variant="text" icon="mdi-plus"></v-btn></h3>
<v-progress-linear color="blue" :active="notes_loading" indeterminate>
</v-progress-linear>
<v-list>
<v-list-item v-for="item in notes" :key="item.id">
{{ item.text }}
</v-list-item>
</v-list>
</v-col>
</v-row>
</template> </template>
<script> <script>
import axios from 'axios'; import axios from 'axios';
@ -53,12 +36,12 @@ export default {
data() { data() {
return { return {
searchQuery: "", searchQuery: "",
customer_list: [], showSearch: true,
customers_loading: null, open: false,
list: [],
limit: 5000, limit: 5000,
listreceived: false, loading: true,
notes_loading: null, listreceived: false
notes: []
} }
}, },
components: { components: {
@ -69,7 +52,7 @@ export default {
if (!this.listreceived){ if (!this.listreceived){
this.getCustomerList() this.getCustomerList()
} }
let clist = this.customer_list.filter(q => let clist = this.list.filter(q =>
q.name.toLowerCase().includes(query) || q.name.toLowerCase().includes(query) ||
q.acc_no.includes(query) q.acc_no.includes(query)
) )
@ -77,41 +60,30 @@ export default {
}, },
}, },
methods: { methods: {
getCustomerNotes(cust){
this.notes_loading = true
let url = this.$api_url + "/customers/" + cust + "/notes"
axios.get(url)
.then(resp => {
this.notes = resp.data
})
.catch(error => (console.log(error)))
.finally(() => {
this.notes_loading = false
})
},
async getCustomerList() { async getCustomerList() {
this.customers_loading = true this.loading = true
let url = this.$api_url + "/customers/list" let url = this.$api_url + "/customers/list"
axios axios
.get(url,{ .get(url,{
params: { limit: this.limit, query: this.searchQuery }}) params: { limit: this.limit, query: this.searchQuery }})
.then(resp => { .then(resp => {
this.customer_list = resp.data this.list = resp.data
this.listreceived = true this.listreceived = true
this.loading = false
}) })
.catch(error => (console.log(error))) .catch(error => (console.log(error)))
.finally(() => {
this.customers_loading = false
})
} }
} }
} }
</script> </script>
<style scoped> <style scoped>
.scroller { .scroller {
height: 500px; height: 500px;
} }
.scroller.small { .customer {
height: 200px; height: 32%;
padding: 0 12px;
display: flex;
align-items: center;
} }
</style> </style>